Chrome扩展程序重新加载

时间:2016-03-14 07:47:42

标签: google-chrome-extension

我正在尝试创建我的第一个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错误响应tabs.query:TypeError:无法读取未定义的属性'id'”。

如果我重新启动Chrome,一切正常。

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

编辑 - 感谢FrançoisF指出我正确的方向。对于学习绳索的任何人来说,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" })
    }
});

1 个答案:

答案 0 :(得分:2)

<table> <thead> <tr> <th>Firstname</th> <th>Lastname</th> <th>Savings</th> </tr> </thead> <tbody> <tr> <td>Peter</td> <td>Griffin</td> <td>$100</td> </tr> <tr> <td>Lois</td> <td>Griffin</td> <td>$150</td> </tr> <tr> <td>Joe</td> <td>Swanson</td> <td>$300</td> </tr> <tr> <td>Cleveland</td> <td>Brown</td> <td>$250</td> </tr> </tbody> </table> 已经为您提供了点击图标的标签,因此您只需要执行此操作:

chrome.browserAction.onClicked