我正在开发Google Chrome扩展程序,这会产生我无法解决的错误。
我的manifest.json看起来像这样:
{
"name": "my extension",
"version": "1.0",
"background_page": "background.html",
"permissions": [
"tabs",
"<all_urls>"
],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"],
"all_frames": true
}
]
}
background.html尝试与content.js交谈:
<script>
chrome.tabs.onUpdated.addListener
(
function(tabId, changeInfo)
{
chrome.tabs.sendRequest(tabId, {action : 'getMyValue'}, function(output) {
console.log(output);
});
}
);
</script>
最后,content.js:
chrome.extension.onRequest.addListener(function(request, sender, callback)
{
if (request.action == 'getMyValue')
{
callback('test');
}
});
开发者工具控制台打印: “端口错误:无法建立连接。接收端不存在。”在第232行的“miscellaneous_bindings”中。
有什么想法吗?
答案 0 :(得分:2)
chrome.tabs.onUpdated
运行。开发工具,铬(扩展)页面等也包括在内。要消除错误,您必须过滤无法访问的网址。
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
// Example: allow http:, https: and file:
if (changeInfo.status === 'complete' &&
/^(https?|file):/.test(changeInfo.url)) {
chrome.tabs.sendRequest(tabId, {action: 'getMyValue'}, function(output) {
console.log(output);
});
}
});