我正在尝试创建我的第一个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" })
}
});
答案 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