2009-06-02 66 views
65

¿Existe una manera simple de obtener la URL actual de un iframe?Obtener la URL actual de IFRAME

El visor pasaría por varios sitios. Supongo que usaría algo en javascript.

+1

Si vino aquí buscando la URL de la página "principal" del iframe, consulte http://stackoverflow.com/q/3420004/32453 – rogerdpack

Respuesta

109

Por razones de seguridad, solo puede obtener la url mientras el contenido del iframe y el javascript de referencia se presten desde el mismo dominio. Mientras que es cierto, algo como esto funcionará:

document.getElementById("iframe_id").contentWindow.location.href 

Si los dos dominios no coinciden, se encontrará con las restricciones de seguridad de secuencias de comandos entre sitios de referencia.

Véase también answers to a similar question.

+0

¿sabe si la solución proporcionada por la respuesta ganadora funciona? No pude hacer que funcione en mi computadora (IE, Windows) – chris

+0

Estaba hablando del enlace que enumeró en la pregunta similar. – chris

+0

No hay una respuesta ganadora en la pregunta que he vinculado ... si se refiere a la respuesta más importante, no es realmente una solución que funcione. Con IE, puede probar el enfoque HTA proporcionado también en las respuestas a la pregunta antes mencionada. – kkyy

16

Si el iframe es de otro dominio, (dominios), las otras respuestas no van a ayudar ... que sólo tendrá que usar esto:

var currentUrl = document.referrer; 

y - aquí tienes obtuvo la url principal!

+14

-1 el OP está buscando la url actual del iframe, no la referencia de la página principal. – Christophe

+10

@Christophe - Lo sé, pero puede ayudar a las personas que buscan obtener la URL principal y llegó a esta pregunta. – ParPar

+4

gr8 ... Esto me ayuda a – Vikky

3

Espero que esto ayude de alguna manera en su caso, Sufrí con exactamente el mismo problema, y ​​acabo de usar localstorage para compartir los datos entre la ventana principal y el iframe. Así que en ventana padre puede:

localStorage.setItem("url", myUrl); 

y en el código fuente de donde iframe se acaba de obtener estos datos de localStorage:

localStorage.getItem('url'); 

me salvó un montón de tiempo. Por lo que puedo ver, la única condición es el acceso al código de página principal. Espero que esto ayude a alguien.

Cuestiones relacionadas