2009-02-14 8 views
12

Este jQuery devolverá la URL de origen de una trama:Obtener fuente de marco con jQuery (después de que haya cambiado la fuente)

$('#frame-name').attr('src') 

Pero si se hace clic en un enlace dentro del marco, todavía se devuelve a la fuente original.

¿Es posible detectar la nueva URL de origen? ¿O puede obtener la fuente del nuevo documento cargado en el marco? Si alguno de ellos es un sí, ¿existen restricciones de seguridad si el marco fuente contiene una URL de un dominio diferente?

Respuesta

5
parent.frames[1].location.href; 

No jQuery, pero lo que estaba buscando. Sin embargo, activa un error de seguridad si la fuente está en un dominio diferente.

1

AFAIK no hay una buena manera de hacer esto con jQuery. Necesitas usar location.href en el elemento html así que si obtienes el elemento con jQuery puedes hacer esto.

$("#iframe-name").get(0).location.href 
+1

$ ("# iframe-name"). Get (0) .location.href no está definido –

+0

¿Lo está haciendo desde el cuadro principal? Vea si el selector realmente está devolviendo un elemento HTMLElement. alert ($ ("# iframe-name"). Get (0)); –

+5

try $ ("# iframe-name"). Get (0) .contentWindow.location.href –

1

¿Es el enlace de un dominio diferente? Los navegadores pueden restringir el acceso a cualquier información sobre lo que un usuario ha abierto en otras ventanas o marcos si está en otro sitio como medida de seguridad.

2

Como extensión del navegador, los errores de seguridad desaparecerían.

Por ejemplo, Greasemonkey es una extensión de Firefox donde puede explorar, y si le gusta el script que crea, se puede empaquetar en su propia extensión, creo.

Alternativamente, puede inyectar el script en una página como bookmarklet.

Cuestiones relacionadas