J'ai une page avec un grand iframe qui contient la majorité du contenu. L'utilisateur interagit avec le site en cliquant dans l'iframe. La fonctionnalité que j'essaye de construire est: Quand un utilisateur navigue loin de mon site, je leur fais une faveur et sort de l'iframe. L'iframe a un événement onload qui est déclenché chaque fois qu'une nouvelle page est chargée, cross-domain ou non.Détecter si l'iframe est inter-domaine, puis en sortir
<iframe id="testframe" src="http://mysite.com" onload="testframe_loaded()"></iframe>
Chaque fois que l'événement est déclenché, je cherche un moyen de:
A) détecter lorsque l'utilisateur accède à un domaine différent
B) du buste de l'iframe.
Je soupçonne que B ne soit pas possible, car les navigateurs ne donnent pas accès à
document.getElementById("testframe").contentDocument.location.href
lorsque l'iframe est inter-domaines. Je ne suis pas sûr non plus si A est possible.
Si quelqu'un a des idées sur la façon d'accomplir ceci, ou est positif que cela ne peut pas être fait, j'apprécierais le conseil.
Merci
Je vais tester l'approche try/catch .. J'oublie toujours que JavaScript supporte cela :) L'interrogation n'est pas nécessaire, puisque je peux la tester à chaque fois que l'onfame de l'événement onload est déclenché. – Emmett
Cela fonctionne définitivement et démontre que A est possible. Malheureusement, B semble toujours impossible - l'expansion des travaux iframe, mais il est toujours bancale parce que l'URL dans la barre d'adresse du navigateur ne correspondra pas au site affiché. Je vais essayer de jouer un peu avec des solutions impliquant la modification des liens que les autres réponses suggèrent, par exemple. attacher un gestionnaire de clic à chaque lien qui vérifie si l'attribut href est inter-domaine. – Emmett
Emmett, le gestionnaire de clic fonctionne, mais seulement pour/your/links, pas de liens dans l'iframe. –