2012-02-20 71 views
0

我有下面的代码来打开一个新的窗口,每当用户按F2键。jQuery如何防止重新打开新窗口?

$(document).bind('keyup', function(e){ 
    if(e.which==113) { 
     window.open('newPage.htm','_blank','','false'); 
    } 
}); 

现在,我想阻止用户打开一个新的窗口,而前一个仍然打开。我怎样才能点出它?

回答

2
var opened = null; 
$(document).bind('keyup', function(e){ 
    if (e.which == 113 && (!opened || !opened.window)) 
     opened = window.open('newPage.htm','_blank','','false'); 
​});​ 
+0

谢谢ori ... – 2012-02-20 09:10:12

+0

不客气。 – ori 2012-02-20 10:43:36

0

你可以试试这个..

var windowOpened=false; 

    $(document).bind('keyup', function(e){ 
     if(e.which==113 && !windowOpened) { 
      window.open('newPage.htm','_blank','','false'); 
      windowOpened=true; 
     } 
    }); 




    In the newPage.htm add code to make windowOpened=false when u close that window. 


< html> 
< head> 
< title>newPage.htm< /title> 
<script> 
function setFalse() 
{ 
    opener.windowOpened = false; 
    self.close(); 
    return false; 
} 
</script> 
< /head> 
< body onbeforeunload="setFalse()"> 
< /body> 
< /html> 
0

给你的窗前,仿佛

var mywindow = window.open("foo.html","windowName"); 

一个名字,那么你可以检查窗口做

if (mywindow.closed) { ... } 
0

关闭当窗口关闭时,window.docum会发生什么情况恩?它是否为空,也许你可以通过null检查它。

var popupWindow; 

$(document).bind('keyup', function(e){ 
    if(e.which==113 && (!popupWindow || !popupWindow.document)) { 
     popupWindow = window.open('newPage.htm','_blank','','false'); 
    } 
});