【问题标题】:Chrome extension reloadChrome 扩展重新加载
【发布时间】:2016-03-14 07:47:42
【问题描述】:

我正在尝试创建我的第一个 Chrome 扩展程序,但我注意到了一些事情。我认为问题可能出在活动页面上。

chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {xbank: "click"})
});
});

一切正常,除非我重新加载扩展程序,上述操作会创建此错误“extensions::uncaught_exception_handler:8 Error in response to tabs.query: TypeError: Cannot read property 'id' of undefined”。

如果我重新启动 Chrome,一切都会再次正常。

我应该采取什么方法来避免这种可能的错误?

编辑 - 感谢 François F 为我指明了正确的方向。对于任何学习技巧的人来说,Chrome 中的新标签都有一个不可见的 chrome://newtab/ URL。同样,扩展页面有一个 chrome://extensions/ URL。而且我的内容脚本也不会执行。

chrome.browserAction.onClicked.addListener(function(tab) {
    if((tab.url).toString().indexOf("http")==-1){
        alert("URL for this page is:\n" + tab.url + "\n\nCannot open app on this URL must be http/htttps");
}
else{
        chrome.tabs.sendMessage(tab.id, { xbank: "click" })
    }
});

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    chrome.browserAction.onClicked 已经为您提供了单击图标的选项卡,因此您只需要这样做:

    chrome.browserAction.onClicked.addListener(function(tab) {
        if (!tab)
        {
            return; // this makes sure the browser action was triggered from a tab
        }
        chrome.tabs.sendMessage(tab.id, {
            xbank: "click"
        })
    });
    

    【讨论】:

    • 我找到了问题所在。这根本不是我想的那样。当我在 Chrome 中打开一个新标签时,地址栏没有显示 URL,并且我的内容脚本没有运行。
    猜你喜欢
    • 1970-01-01
    • 2012-03-14
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2022-06-21
    • 1970-01-01
    相关资源
    最近更新 更多