Google chrome extension 如何检测操作弹出窗口何时关闭?

Google chrome extension 如何检测操作弹出窗口何时关闭?,google-chrome-extension,Google Chrome Extension,我想在页面操作或浏览器操作弹出窗口关闭时触发一些代码。我试着在或窗口上收听onnload和onbeforeuload事件,但它们从未触发。因为看起来没有直接的解决方案,如果有人感兴趣,我最终会这样做 定期从弹出窗口ping后台页面,如果在某个时间段内没有收到后台页面ping,则会触发所需的操作。像定时炸弹一样工作:) 在背景页中: var timeoutId = 0; function popupPing() { if(timeoutId != 0) { clearTim

我想在页面操作或浏览器操作弹出窗口关闭时触发一些代码。我试着在
窗口上收听
onnload
onbeforeuload
事件,但它们从未触发。

因为看起来没有直接的解决方案,如果有人感兴趣,我最终会这样做

定期从弹出窗口ping后台页面,如果在某个时间段内没有收到后台页面ping,则会触发所需的操作。像定时炸弹一样工作:)

在背景页中:

var timeoutId = 0;
function popupPing() {
    if(timeoutId != 0) {
        clearTimeout(timeoutId);
    }

    timeoutId = setTimeout(function() {
        popupClosed();
        timeoutId = 0;
    }, 1000);
}

function popupClosed() {
    //...
}
在弹出窗口中:

ping();
function ping() {
    chrome.extension.getBackgroundPage().popupPing();
    setTimeout(ping, 500);
}

(请注意,弹出ping的速度是后台页面“触发”时间的2倍)

这是一个bug,但chromium开发人员发布了一个解决方案


尽管我真的希望有更好的答案(如果没有,我们应该提交一个bug),但这是一个非常酷的黑客。一种死人的开关: