我在尋找彈出式關閉事件。我發現一個for XUL,但我需要它的HTML。處理彈出式關閉的正確方法
Popup有closed
屬性。我可以check it once at half second。
function open_popup() {
var popup = open('http://example.com/', 'popup', 'height=450,width=450');
var timer = setInterval(function(){
if (popup.closed) {
alert('popup closed!');
clearInterval(timer);
}
}, 500);
}
我已經在Chrome 4.0.249.27,Opera 10.10,Safari 4.0.4和Firefox 3.5.5上測試過它。一切正常。
但setInterval打擾我。這是醜陋的。有沒有更好的方法來做到這一點?
更新: 我使用彈出式認證對話框(oAuth,實際上)。我想在彈出關閉後(通過postMessage)向父窗口發送一些數據。
頁面從另一個域彈出。所以,由於安全限制,我無法添加任何事件(unload
)。
由於iframe腳本腳本,我無法使用iframe。所以,我不能使用任何花哨的jQuery模態對話框。
我無法編輯任何東西彈出窗口內。
嘎!我前幾天看到了這樣做的方式!在新創建的窗口中有一個屬性,我認爲它是文檔的一個屬性,允許您回溯到創建的原始窗口,並說運行一個函數。它在你的例子中非常類似popup.closed,除了 – 2009-12-05 23:51:50
aha,發現它 - 下面的答案。 – 2009-12-05 23:54:01