Détecter lors de l'iframe est multi-domaine, puis le buste hors de lui
J'ai une page avec un grand iframe qui contient une majorité de contenu. L'utilisateur interagit avec le site web en cliquant autour de l'intérieur de l'iframe. La fonctionnalité que je suis en train de construire est: Lorsqu'un utilisateur navigue loin de mon site, je leur fais une faveur et à sortir de l'iframe.
L'iframe est un événement onload qui est déclenché chaque fois qu'une nouvelle page est chargée, de la croix-domaine ou non.
<iframe id="testframe" src="http://mysite.com" onload="testframe_loaded()"></iframe>
Chaque fois que l'événement est déclenché, je suis à la recherche d'une certaine façon à:
Un) Détecter lorsque l'utilisateur accède à un domaine différent
B) Buste hors de l'iframe.
Je soupçonne que B n'est pas possible, puisque les navigateurs ne donne pas accès à
document.getElementById("testframe").contentDocument.location.href
lorsque l'iframe est inter-domaine. Je suis également pas sûr de savoir si ou non est possible.
Si quelqu'un a des idées sur la façon de le faire, ou est positif qu'il ne peut pas être fait, je vous en serais reconnaissant les conseils.
Grâce
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire, car si vous obtenez un message d'erreur (que vous pouvez attraper), cela signifie qu'ils sont inter-domaine 🙂 Ensuite, vous pouvez redimensionner l'iframe à l'ensemble de la page. Mais je pense que vous avez raison, vous ne pouvez pas sortir, sans l'accord de coopération de l'autre domaine.
EDIT: vous avez raison, Vous n'avez pas besoin de sondage. Voici le code de base:
définir la "cible" de l'attribut sur les liens externes pour '_top'.
Cela fonctionne pour chrome au moins (pas de testeur sur les autres navigateurs)
Il va encore jeter le
"unsafe javascript attempt"
avertissement, mais cela n'arrête pas l'exécution de code. Au lieu de la variable est retourné comme non défini.