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

标签 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

最佳答案

好的旧window.onunload将在内容脚本中工作。

关于javascript - 选项卡关闭或页面更改之前的 Chrome 扩展内容脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652539/

相关文章:

javascript - 是否可以将图像添加为 Logo 颜色框

javascript - postMessage JSON 在 Google Chrome 中的编码/解码是否与在 Firefox 中一样?

html - 如何修复HTML5输入框高度不一致?

javascript - 使用谷歌翻译开发谷歌浏览器扩展

javascript - 如何在Chrome扩展中同步执行外部js文件

javascript - 如何从对象 URL 获取文件或 blob?

javascript - 通过完整引用传递变量

javascript - ExtJS 4,自定义Ext.grid.Panel的boolean列值

asp.net-mvc - 为什么 Chrome 在这两种情况下使用不同的客户端缓存?

google-chrome-extension - 从页面上的 chrome 扩展加载图像