如何防止Chrome扩展程序在chrome-url上执行

时间:2018-12-10 16:02:53

标签: google-chrome-extension

我的插件效果很好。如果它在Chrome Urls(例如chrome:// extensions /

)上运行,我只会在插件错误日志中收到一条错误消息
//
// 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 语境 _generation_background_page.html“

我尝试仅在windows.location.hostname不等于扩展名的情况下运行它,这使其在页面上时不运行,但我仍然收到错误消息。

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

1 个答案:

答案 0 :(得分:0)

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

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