Tengo una página con un gran iframe que contiene la mayoría del contenido. El usuario interactúa con el sitio web al hacer clic dentro del marco flotante. La funcionalidad que intento construir es: cuando un usuario navega fuera de mi sitio, les hago un favor y me retiro del iframe.Detectar cuando el iframe tiene dominio cruzado, luego reventarlo
El iframe tiene un evento de carga que se activa cada vez que se carga una nueva página, entre dominios o no.
<iframe id="testframe" src="http://mysite.com" onload="testframe_loaded()"></iframe>
Cada vez que el evento se dispara, estoy buscando alguna manera de:
Un) detectar cuando el usuario navega a un dominio diferente
B) Busto a cabo del iframe
Sospecho que B no es posible, ya que los navegadores no dan acceso a
document.getElementById("testframe").contentDocument.location.href
cuando el iframe es multi-dominio. Tampoco estoy seguro de si A es posible.
Si alguien tiene ideas sobre cómo lograr esto, o si está seguro de que no se puede hacer, agradecería el consejo.
Gracias
Voy a probar el enfoque try/catch .. Siempre olvido que JavaScript admite eso :) Sin embargo, no es necesario el sondeo, ya que puedo probarlo cada vez que se activa el evento de carga del iframe. – Emmett
Esto definitivamente funciona y demuestra que A es posible. Desafortunadamente, B aún parece imposible: la expansión del iframe funciona, pero todavía no funciona porque la URL en la barra de ubicación del navegador no coincidirá con el sitio que se muestra. Trataré de jugar un poco con las soluciones que implican modificar los enlaces que sugieren las otras respuestas, p. adjuntando un manejador de clics a cada enlace que verifica si el atributo href es de dominio cruzado. – Emmett
Emmett, el manejador de clics funciona, pero solo para/your/links, no enlaces dentro del iframe. –