【发布时间】: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" })
}
});
【问题讨论】: