Saltar al contenido

Acceder a la URL principal desde iframe

No busques más por todo internet ya que llegaste al lugar adecuado, contamos con la solución que necesitas recibir sin liarte.

Solución:

Sí, no se permite acceder a la URL de la página principal si el iframe y la página principal no están en el mismo (sub)dominio. Sin embargo, si solo necesita la URL de la página principal (es decir, la URL del navegador), puede probar esto:

var url = (window.location != window.parent.location)
            ? document.referrer
            : document.location.href;

Nota:

window.parent.location esta permitido; evita el error de seguridad en el OP, que se produce al acceder al href propiedad: window.parent.location.href provoca “Bloqueado un marco con origen…”

document.referrer se refiere a “el URI de la página que se vinculó a esta página”. Esto puede no devuelve el que contiene documento si alguna otra fuente es la que determinó la iframe ubicación, por ejemplo:

  • Contenedor iframe @ Dominio 1
  • Envía el iframe secundario al Dominio 2
  • Pero en el iframe secundario… El Dominio 2 redirige al Dominio 3 (es decir, para la autenticación, tal vez SAML), y luego el Dominio 3 dirige espalda al Dominio 2 (es decir, a través del envío de formularios(), una técnica SAML estándar)
  • Para el niño iframe el document.referrer será dominio 3no el dominio contenedor 1

document.location se refiere a “un objeto Ubicación, que contiene información sobre la URL del documento”; presumiblemente el Actual documento, es decir, el iframe actualmente abierto. Cuando window.location === window.parent.locationentonces el iframe href es el mismo como el padre contenedor href.

Acabo de descubrir una solución para este problema que es tan simple y, sin embargo, no he encontrado ninguna discusión en ninguna parte que lo mencione. Requiere el control del marco principal.

En su iFrame, diga que desea este iframe: src=”http://www.example.com/mypage.php”

Bueno, en lugar de HTML para especificar el iframe, use un javascript para crear el HTML para su iframe, obtenga la URL principal a través de javascript “en el momento de la compilación” y envíela como un parámetro GET de URL en la cadena de consulta de su objetivo src, como asi que:


Luego, encuentre una función de análisis de URL de javascript que analice la URL string para obtener la variable de URL que busca, en este caso es “url”.

Encontré una gran URL string analizador aquí: http://www.netlobo.com/url_query_string_javascript.html

Si su iframe es de otro dominio (dominio cruzado), simplemente necesitará usar esto:

var currentUrl = document.referrer;

y – ¡aquí tienes la url principal!

Te mostramos las reseñas y valoraciones de los usuarios

Nos puedes añadir valor a nuestro contenido dando tu experiencia en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *