2009-10-22 10 views
4

A partir d'une fenêtre pop-up de l'enfant (ouvert à l'aide window.open), je suis en train de changer l'URL de la fenêtre qui m'a ouvert, par exempleModification de l'adresse de la fenêtre d'ouverture dans IE8

window.opener.location.href = 'http://www.google.com';

Dans tous les navigateurs, cela fonctionne à merveille, sauf pour IE8 (et je suis un peu sûr qu'il a travaillé dans IE8 précédente. Peut-être une mise à jour de sécurité tue ce sujet).

Dans IE8 ce qui se passe est que la ligne ci-dessus est traitée comme une demande d'ouverture d'une fenêtre NOUVEAU avec l'adresse et la fenêtre d'ouverture d'origine reste le même. Et, puisque je ne mets pas cette ligne dans un événement onclick, ceci est traité comme un popup.

Alors, comment dois-je faire cela dans IE8? Comment changer l'emplacement de l'ouvre-porte?

Répondre

0

essayez ceci: sur la fenêtre d'ouverture définit une fonction appelée goto ;-)

function goto(url){ window.location.href = url; } 

maintenant de l'appel fenêtre enfant window.opener.goto(url);

+0

Malheureusement, je ne contrôle pas la fenêtre d'ouverture (il est BestBuy, com et d'autres détaillants), et même si je devais, ils sont un domaine différent de moi-même, donc je crois que je ne peux pas appeler de méthode dans la fenêtre d'ouverture. – giltayar

1

Il ressemble à ceci est tout simplement pas possible. Je suis pas de réponse de quiconque, et toutes mes recherches ont indiqué que c'est juste une autre façon de bloquer MS ajouté popups.

+2

Alors c'est tout bête. – Faruz

1

essayer de déplacer l'action dans la fenêtre parent, comme ceci:

//parent.htm 
function changeUrl(url) { 
    location.href = url; 
    window.reload(); 
} 

window.open("child.htm"); 

..... 

//child.htm 
window.opener.changeUrl(url); 
Questions connexes