首页 > 解决方案 > 如何防止 chrome 扩展在 chrome-urls 上执行

问题描述

我的插件运行良好。如果插件在 chrome://extensions/ 之类的 Chrome 网址上运行,我只会在插件错误日志中收到错误消息

//
// Inject the payload.js script into the current tab after the popout has loaded
//

window.addEventListener('load', function (evt) {
    chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
        file: 'payload.js'
    });
});

运行 tabs.executeScript 时生成“未检查的 runtime.lastError:无法访问 chrome:// URL 上下文 _generated_background_page.html”

我尝试仅在 windows.location.hostname 不等于扩展名时才运行它,这使得它在页面上时无法运行,但我仍然收到错误消息。

我在这里读到它可以被忽略,并且有一张缺失的支票,但没有上述支票的例子。https://groups.google.com/a/chromium.org/d/msg/chromium-extensions/qC1o39YkN28/WEOAFv6xNWYJ

标签: google-chrome-extension

解决方案


当您需要通过这种方式在后台页面上注入脚本时,我不知道这种情况。无论如何,您可以添加回调并处理错误

window.addEventListener('load', function (evt) {
chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, {
    file: 'payload.js'
}, ()=>{
    if(chrome.runtime.lastError) {
        //handle error here
    }
});});

推荐阅读