您好我是Chrome扩展程序的新手,我正在尝试进行扩展。我希望每次用户转到另一个选项卡时,background.js都会向content.js发送请求,并且我在background.js中有这个代码
chrome.tabs.onActivated.addListener(function() {
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "update"}, function(response) {
console.log(response.proto);
});
});
});
并在content.js中我有这个代码来接收请求并发送响应:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(request.greeting);
var protocol = window.location.protocol;
sendResponse({ proto: protocol });
}
);
我在后台控制台中收到此错误:
Error in event handler for (unknown): TypeError: Cannot read property 'proto' of undefined
at background.js:6:32
我在普通控制台中没有错误。我使用过这个文档:
https://developer.chrome.com/apps/messaging
和
https://developer.chrome.com/extensions/tabs#event-onActivated
我做错了什么?
答案 0 :(得分:0)
content.js
仅在url
文件中定义manifest.json
的标签中运行。如果活动标签的url
与这些网址不匹配,则background.js
将无效。