Javascript 如何在chrome扩展中从开场白接近事件?

Javascript 如何在chrome扩展中从开场白接近事件?,javascript,browser,google-chrome-extension,Javascript,Browser,Google Chrome Extension,我当时正在调查和阅读这方面的资料,却找不到应该怎么做 我正在开发一个chrome扩展,以供参考文档 因此,我想创建一个弹出窗口,并在它关闭时进行监听,如下面的代码段所示(这不起作用) 关于如何做才是最好的方法,有什么建议吗?订阅chrome.windows.onRemoved事件会起作用,但除了关闭的范围之外,我找不到更好的方法来识别弹出id chrome.windows.getCurrent(function () { chrome.windows.create({ u

我当时正在调查和阅读这方面的资料,却找不到应该怎么做

我正在开发一个chrome扩展,以供参考文档

因此,我想创建一个弹出窗口,并在它关闭时进行监听,如下面的代码段所示(这不起作用)


关于如何做才是最好的方法,有什么建议吗?

订阅
chrome.windows.onRemoved
事件会起作用,但除了关闭的范围之外,我找不到更好的方法来识别弹出id

chrome.windows.getCurrent(function () {
    chrome.windows.create({
        url: "http://www.google.com",
        type: "popup",
        width: 640,
        height: 800
    }, function(w) {
        chrome.windows.onRemoved.addListener(function (wIndex) {
            if (wIndex === w.id) {
                console.log("hey");
            }
        });
    });
});

您可以使用变量跟踪弹出窗口id,并在
chrome.windows.onRemoved
listener中检查该变量,因此您不必每次都添加和删除侦听器:

var myPopupId;

chrome.windows.create({
    url: "http://www.google.com",
    type: "popup",
    width: 640,
    height: 800
    }, function(w) {
        myPopupId = w.id;
    }
);

chrome.windows.onRemoved.addListener(function(windowId){
    if (windowId == myPopupId){
        console.log("hey");
    }
});

请参阅chrome.windows API的文档:window参数不是DOM窗口。鉴于您只能关闭窗口一次,您应该在检测到窗口关闭时删除侦听器。
var myPopupId;

chrome.windows.create({
    url: "http://www.google.com",
    type: "popup",
    width: 640,
    height: 800
    }, function(w) {
        myPopupId = w.id;
    }
);

chrome.windows.onRemoved.addListener(function(windowId){
    if (windowId == myPopupId){
        console.log("hey");
    }
});