选项卡关闭或页面更改之前的chrome扩展内容脚本

时间:2014-02-08 22:24:56

标签: javascript google-chrome google-chrome-extension

我的内容脚本是在background.js中启动的,其中包含:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    var url = (new String(tab.url)).valueOf();
    if(url.indexOf("chrome") == 0 || url == undefined || url == 'undefined')
        return;
    if(changeInfo.status == 'complete') {            
        chrome.tabs.executeScript(tabId,
        {file: "js/control.js", runAt:"document_end"},
        function() { console.log("Control sent to page");
    });
    console.log("ChangeInfo " + changeInfo.status);
});

我需要在页面更改或窗口关闭之前执行一个函数。我环顾四周,无法弄清楚如何做到这一点。我能找到的最接近的是:

chrome.runtime.onSuspend.addListener(function () {
    someObjectDefinedInScript.afunction("stopping");
});

因为我让chrome.runtime.sendMessage内容脚本中工作。

但这会返回错误:

Uncaught TypeError: Cannot call method 'addListener' of undefined

2 个答案:

答案 0 :(得分:1)

您可以使用chrome.tabs.onRemoved事件来监听Tab关闭(您应该在后台脚本上声明此侦听器)。

更多信息:https://developer.chrome.com/extensions/tabs#event-onRemoved

答案 1 :(得分:1)

好的旧window.onunload可以使用内容脚本。