2011-10-18 11 views
0

を閉じる私は、私は必要なポップアップウィンドウを開くの世話をするコードが見つかりました:は、ポップアップウィンドウ

function winOpen(theURL, Name, popW, popH, scroll) { // V 1.0 
var winleft = (screen.width - popW)/2; 
var winUp = (screen.height - popH)/2; 
winProp = 
'width='+popW+',height='+popH+',left='+winleft+',t op='+winUp+',scrollbars='+scroll+',' 
    Win = window.open(theURL, Name, winProp) 
    if (parseInt(navigator.appVersion) >= 4){ 
     Win.window.focus(); 
    } 

は、ここでは、ウィンドウが閉じている、またはそれは別のを必要としない場合にコミットされた機能を含むように、それは可能です関数呼び出しどこか?私はウィンドウをHTMLリンクで開いていると呼んでいます。

答えて

0

ポップアップ内に表示されているページには、bodyonunloadまたはonbeforeunloadにイベントハンドラが追加されている可能性があります(IEのみと思われます)。文書がをアンロードすると(それは誰が推測していたでしょうか)。ドキュメントをアンロードするリンクがない場合は、ウィンドウが閉じられたことを示すインジケータとしてこのイベントを取ることができます。

第2の可能性:ウォッチドッグを追加します。

var watcherID = setInterval(function() 
{ 
    if (Win.closed) 
    { 
    clearTimeout(watcherID); 
    // Do what you have to do. 
    } 
}, 400); 
0

コードを読みやすくするために少しインデントする必要があります。また、win.closedを使用して、onunloadが閉じていることを確認できますが、ちょっと待ってから、http://jsfiddle.net/9PYWj/を確認してください。

function winOpen(theURL, Name, popW, popH, scroll) { // V 1.0 
    var winleft = (screen.width - popW)/2, 
     winUp = (screen.height - popH)/2, 

     winProp = 'width=' + popW 
        + ',height=' + popH 
        + ',left=' + winleft 
        + ',top=' + winUp 
        + ',scrollbars=' + scroll + ',', 

     win  = window.open(theURL, Name, winProp); 

    win.onunload = function() { 
     setTimeout(function() { 
      if(win.closed) { 
       alert(123); 
      } 
     }, 100); 
    }; 

    win.focus(); 
} 
関連する問題