Window.open () retourne indéfinie ou nulle en 2ème appel

J'ai le scénario suivant:

Je clique sur un lien qui: ouvre une fenêtre contextuelle appelée 'popup' qui charge un pdf à l'intérieur de celui-ci (dans IE6).

Sans fermer le popup, je clique sur le lien à nouveau, ce qui devrait rouvrir le pdf dans le menu contextuel, mais plutôt une erreur de javascript lancée: membre introuvable

La fonction javascript utilisée pour ouvrir la fenêtre contextuelle est:

function openWindow(url, name, props) { var windowRef = window.open(url, name, props); if (!windowRef.opener) { windowRef.opener = self; } windowRef.focus(); //error at this line, windowRef must be null return windowRef; } 

Question: comment puis-je contourner cela, sans ouvrir une nouvelle fenêtre contextuelle à chaque fois?

C'est le hack qui fonctionne que tous les internautes utilisent:

 function openWindow(url, name, props) { if(/*@cc_on!@*/false){ //do this only in IE var windowRef = window.open("", name, props); windowRef.close(); } var windowRef = window.open(url, name, props); if (!windowRef.opener) { windowRef.opener = self; } windowRef.focus(); return windowRef; } 

Essayez d'utiliser global var windowRef en dehors de la fonction openWindow (). Quelque chose comme ça:

 var WindowRef = null; function openWindow(url, name, props) { if(WindowRef == null){ WindowRef = window.open(url, name, props) } else{ WindowRef.document.location = url } if (!WindowRef.opener) { WindowRef.opener = self; } WindowRef.focus(); return WindowRef; }