1

私はポップアップを作成しました:

var popup = window.open(URL, ...) //content of popup is not in my control

ポップアップがいつ閉じられるか知りたいのですが、以下のコードが役立つと思いました。

$(popup).unload()

ただし、Firefox は、ポップアップが閉じられたときではなく、ポップアップが表示されたときに unload イベントを開始します!

オープナーによって、ポップアップがいつ閉じられたかを知る信頼できる方法はありますか?

ポップアップが閉じているかどうかを(たとえば)500ミリ秒ごとに尋ねるポップアップをポーリングするのは特に好きではありません...

(ポップアップが javascript でいつ閉じられるかを知る方法でこの解決策を見つけました)

4

3 に答える 3

2

onbeforeunload event handlerポップアップに追加できる場合は、次のようなことを試してください。

親:

function parentCallback(){
  alert("popup is closed");
}

var popup = window.open(URL, ...);

現れる:

window.onbeforeunload = function(){
    window.opener.parentCallback();
    self.close();
};

そうでなければ、それがinterval私が提案できることです。

var pop_win = window.open(url,...);   
var timer = setInterval(function() {   
    if(pop_win.closed) {  
        clearInterval(timer);  
        alert('popup is closed');  
    }  
}, 1000);  
于 2012-01-17T17:47:06.870 に答える
0

この質問は少し古いことは知っていますが、答えを探している他の人にとっては、解決策を見つけたと思います:

あなたはこのようにすることができるかもしれません(とにかくFFでもうまくいきました):

親:

var popup = window.open("about:blank"); // Or whatever page you are loading
popup.onunload = function(){
    parent.location.reload();
        // or
    parent.alert("Popup closed!");
        // or any other handler in the parent window,
        // just remember to call it on the parent object.
};
于 2013-06-05T14:40:27.877 に答える
0

popup.location は、閉じている場合は null を返し、開いている場合は空のセットを返すようです。

popup.location // Open Window

=> Location 
      No Properties Defined

popup.location // Closed Window

=> null

テスト:

if (popup.location) {alert('hello')}
于 2012-01-17T17:30:58.930 に答える