de la fenêtre.parent.emplacement.href IE9 Bug?
Scénario:
-
domain1.com les hôtes d'un iFrame de domain2.com.
-
domain2.com est l'utilisation de javascript pour déclencher des liens dynamiques qui ont besoin de
de la route à la fenêtre parent. -
Les liens sont tous les chemins d'accès relatifs.
-
Cliquant sur /linkA.html (en iframe sur domain2.com itinéraires les parents à
domain1.com/linkA.html.var _generic = "/linkA.html";
$("#canvas").each( function () { $(this).children("a").attr("href",_generic); $(this).click( function(e) { e.preventDefault(); window.parent.location.href = _generic; } ); } );
Changer les liens absolus (domain2.com/linkA.html) résout le problème fonctionnel.
Quelqu'un a rencontré ce avant?
Vous devez vous connecter pour publier un commentaire.
Pour que le navigateur pour résoudre l'ensemble de l'url lors de la configuration des chemins relatifs, il faut d'abord lire le courant href, et c'est bloqué par la SOP.
Mais je suis sûr que si vous utilisez
parent.location
au lieu deparent.location.href
, alors cela fonctionnera tout aussi bien.Vous devez essayer d'utiliser le
window.opener.location
au lieu dewindow.parent.location
.J'ai vu une différence dans IE9 vs IE8, FireFox, Webkit et. Considérons le code suivant:
Parent source:
iframe source (sur le domaine distinct):
Si la page est ouverte dans IE8 ou IE9 configuré pour s'exécuter dans IE8 mode ou Chrome 23 ou FF16) en cliquant sur le lien de résultats en accédant à //(iframe domaine)/nouveau-href alors que dans IE9, il va à //(parent d'origine de domaine)/nouveau-href
Je suis encore en train de chercher comment contourner ce problème et mettra à jour ce si/quand j'aurais plus d'informations.
Mise à JOUR: le Réglage de l'target="_top" attribut pour iframe liens œuvres autour de ce problème.
Mis à jour iframe source (sur le domaine distinct):
Cliquant sur le lien dans cette mise à jour du code iframe pour rediriger le parent (la totalité) de la fenêtre de //(iframe domaine)/nouveau-href dans les deux IE8 & IE9 (et, autant que je sache, tous les navigateurs ainsi). Qu'est ce que vous voulez faire, non?
par exemple, Si vous voulez faire toutes les balises dans un iframe provoquer le haut/le principal/de la fenêtre parent de naviguer quelque part plutôt que de l'iframe naviguant quelque part, puis d'utiliser quelque chose comme ceci:
Voir aussi attribut target de la documentation