7

J'ai lu les questions connexes sur ce sujet, mais je n'ai pas encore trouvé de solution à ce problème. J'ai une simple fonction javascript qui appelle window.open lorsqu'un lien est cliqué:Javascript window.open renvoie null dans IE8 32 bits sur Win7 x64

var newwindow; 
function pop(url) 
{ 
    newwindow=window.open(url,'','height=500,width=532'); 
    if (window.focus) {newwindow.focus();} 
} 

Cela fonctionne bien sur Chrome, Firefox et fonctionne même dans 64 bits IE 8. Cependant, lorsque je tente cela dans 32 -bit IE 8 j'obtiens une erreur que 'newwindow' est nul ou pas un objet.

Des idées sur pourquoi cela se produirait uniquement dans IE 8 32 bits? Mon intuition était qu'elle était liée à UAC dans Windows 7 (je cours Win 7 x64), mais je reçois l'erreur même après avoir désactivé le mode protégé et en cours d'exécution avec vue de compatibilité sur.

Je me demande aussi pourquoi Windows 7 x64 est livré avec les versions 32 bits et 64 bits d'IE 8, et pourquoi la version 32 bits a été épinglé à ma barre des tâches ...

Répondre

2

Je ne connaître vos autres problèmes, mais la raison pour laquelle la version 32 bits est la plus visible par défaut est que la plupart des plugins n'ont toujours pas de versions 64 bits, par exemple. Flash, donc l'utilisateur moyen serait très confus quand ils ne peuvent pas obtenir Youtube pour travailler sur leur nouveau système 64 bits brillant.

0

J'ai remarqué quelque chose de similaire.

J'ai une fenêtre ouverte en utilisant la fonction IE showModalDialog. Sur cette fenêtre, j'ai un bouton qui appelle window.open. Cet appel renvoie null. Puis j'ai ouvert la même page dans une fenêtre normale, pas dans un dialogue modal. Cette fois, le bouton a également renvoyé null, mais IE m'a dit que la page Web voulait ouvrir la fenêtre de la fenêtre pop-up, cela a été bloqué. Il m'a donné une option pour le débloquer ... et il a commencé à fonctionner dans les deux cas - fenêtre modale et régulière.

Il semble que dans le mode modal dans IE, IE n'affiche pas les avertissements comme popup blocked.

10

Internet Explorer semble retourner une valeur nulle si l'URL est en dehors de votre domaine actuel. Vous pouvez contourner le problème en ouvrant d'abord une page vide, puis en naviguant dans la fenêtre vers l'URL réelle:

var newwindow; 
function pop(url) 
{ 
    newwindow=window.open('','','height=500,width=532'); 
    newwindow.location = url; 

    if (window.focus) {newwindow.focus();} 
} 
+2

cela fonctionne. Cependant, la propriété window.closed est devenue "true" lorsque la nouvelle fenêtre a été actualisée une fois que vous avez défini l'URL de localisation. – noboundaries

+1

La solution fonctionne mais elle crée un autre impact car elle transforme la propriété 'window.close' en true ce qui n'est pas une solution réalisable. Parce que dans mon application, je vérifie 'window.closed()' qui rend la condition vraie même si la fenêtre n'est pas fermée. –

Questions connexes