我无法访问Background脚本中的事件。 (我已禁用所有其他扩展程序,Chrome版本:版本59.0.3071.115(官方版本)(64位)
下载扩展程序zip文件,这也没有同样的问题。 https://drive.google.com/file/d/0B2PMiyi-mpArcmlwVTl0UUFjNTA/view?usp=sharing
清单:
"background": {
"page": "client_base/host/chrome/index.html",
"persistent": true
},
"content_scripts": [
{
"matches": [
"*://mail.google.com/*"
],
"css": [
"/gmail_ext/content_script.css"
],
"js": [
"/gmail_ext/loader.js"
],
"run_at": "document_end"
}
],
内容脚本:
var getContactsPort = chrome.runtime.connect('getContacts');
getContactsPort.postMessage({greeting: "hello"});
getContactsPort.onMessage.addListener(function (message, sender) {
alert(message);
});
后台脚本(通过Dojo从带有脚本标记的页面调用)
chrome.runtime.onConnect.addListener(function (getContactsPort) {
getContactsPort.onMessage.addListener(function (msg) {
console.log(msg);
getContactsPort.postMessage({status: msg.greeting + ' world'});
});
});
DevTools将chrome.runtime
显示为未定义:
答案 0 :(得分:0)
回答可能为时已晚,但您可以使用此代码 -
chrome.tabs.getSelected(null, (tab) => {
chrome.tabs.sendMessage(tab.id, {data: 'hi'});
});