我的内容脚本是在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
答案 0 :(得分:1)
您可以使用chrome.tabs.onRemoved
事件来监听Tab关闭(您应该在后台脚本上声明此侦听器)。
更多信息:https://developer.chrome.com/extensions/tabs#event-onRemoved
答案 1 :(得分:1)
好的旧window.onunload
可以使用内容脚本。