2011-07-12 2 views
0

Quelqu'un peut-il me dire comment je pourrais utiliser une variable de portée globale pour que je puisse fermer "window 1" de "window2"? Cela me lance vraiment pour une boucle, donc toute aide serait génial!window.open variable de portée globale javascript

J'ai index.html avec 1 lien et 1 bouton. Le bouton ouvre la fenêtre 1, le lien ouvre la fenêtre 2. Je veux que Windows 2 ait un bouton qui puisse fermer la fenêtre 1. S'il vous plaît, aidez si vous le pouvez !! Merci!!!

<script type="text/javascript"> 
function openWin1() 
{ 
myWindow=window.open('','',''); 
myWindow.document.write("<p><img src=\"flower.jpg\" /></p>"); 
myWindow.focus(); 
} 
function openWin2() 
{ 
myWindow=window.open('','',''); 
myWindow.document.write("<style type=\"text/css\">body{background-color:yellow;}</style> 
<p><img src=\"bee.jpg\" /></p><input type=\"button\" onclick=\"window.close();\" 
value=\"Close Window 1\" />"); 
myWindow.focus(); 
} 
</script> 
</head> 

<body> 

<input type="button" value="Window 1" onclick="openWin1();" /><br /> 
<a href="javascript:openWin2();">Window 2</a> 

</body> 
</html> 

Répondre

0

utilisez window.opener.mywindow.close() depuis la deuxième fenêtre pour fermer en premier. Choisissez un autre nom de variable pour la deuxième objet fenêtre

+0

mmmm .. oui, j'ai essayé ça. ne semble pas fonctionner. peut-être que je le faisais mal? suggestions quelqu'un? – crosby

+0

window.opener.mywindow.close() ne fonctionne pas. Ne le pense pas. Ça doit marcher. N'oubliez pas de créer une variable différente pour les deux fenêtres. – hungryMind

1

testé ce local (fonctionne dans Chrome, devrait fonctionner dans d'autres navigateurs aussi):

function openWin1() { 
    myWindow1 = window.open('google.com', '', ''); 
    myWindow1.document.write("<p><img src=\"flower.jpg\" /></p>"); 
    myWindow1.focus(); 
} 

function openWin2() { 
    myWindow2 = window.open('yahoo.com', '', ''); 
    myWindow2.document.write("<style type=\"text/css\">body{background-color:yellow;}</style><p><img src=\"bee.jpg\"></p><input type=\"button\" onclick=\"window.opener.myWindow1.opener = window.self;window.opener.myWindow1.close();\" value=\"Close Window 1\" />"); 
    myWindow2.focus(); 
} 
+0

Pourquoi le downvote? – Mrchief

+0

Désolé, je ne vous ai pas downvote !! merci de poster – crosby

+0

il fermera la fenêtre parent pas son frère – hungryMind

0

deux « fenêtre1 » et « window2 » peut se référer à la page originale via window.opener. Votre page d'origine peut donc exposer une fonction globale que l'une des autres pages peut appeler comme ceci:

window.opener.closeTheOtherOne();