如何从镀铬扩展中的揭幕战获得近距离事件?

时间:2017-01-19 19:34:09

标签: javascript browser google-chrome-extension

我正在调查和阅读这些内容,无法在任何地方找到应该如何完成。

我正在开发 chrome扩展程序,以参考文档here

所以我想创建一个弹出窗口并在它关闭时收听,就像在下面的代码片段中那样(不起作用)。

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

有关如何做到最佳方式的任何建议?

2 个答案:

答案 0 :(得分:1)

订阅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");
            }
        });
    });
});

答案 1 :(得分:1)

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

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");
    }
});