2009-02-14 8 views
12

Cette jQuery retourne l'URL source d'un cadre:Obtenir source de cadre avec jQuery (après que la source a changé)

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

Mais si un lien à l'intérieur du cadre est cliqué, la source d'origine est toujours retourné.

Est-il possible de détecter la nouvelle URL source? Ou obtenir la source du nouveau document chargé dans le cadre? Si l'un de ces deux est un oui, existe-t-il des contraintes de sécurité si le cadre source contient une URL provenant d'un domaine différent?

Répondre

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

Pas jQuery, mais ce que je cherchais. Cependant, déclenche une erreur de sécurité si la source est sur un domaine différent.

1

AFAIK il n'y a pas de bon moyen de le faire avec jQuery. Vous devez utiliser location.href sur l'élément html, donc si vous obtenez l'élément avec jQuery, vous pouvez le faire.

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

$ ("# iframe-name"). Get (0) .location.href est indéfini –

+0

Faites-vous cela à partir du cadre parent? Voir si le sélecteur renvoie réellement un HTMLElement. alert ($ ("# iframe-name"). Get (0)); –

+5

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

1

Le lien d'un domaine différent? Les navigateurs peuvent restreindre l'accès à toute information sur ce qu'un utilisateur a ouvert dans d'autres fenêtres ou cadres s'il se trouve sur un autre site par mesure de sécurité.

2

En tant qu'extension du navigateur, les erreurs de sécurité disparaîtraient. Par exemple, Greasemonkey est une extension Firefox où vous pouvez explorer, et si vous aimez le script que vous créez, il peut être empaqueté dans sa propre extension, je crois. Vous pouvez également injecter le script dans une page en tant que bookmarklet.

Questions connexes