chrome 扩展中不存在 chrome.runtime.onConnect
Posted
技术标签:
【中文标题】chrome 扩展中不存在 chrome.runtime.onConnect【英文标题】:chrome.runtime.onConnect doesn't exist in chrome extension 【发布时间】:2013-03-19 14:30:25 【问题描述】:我在持久后台脚本 (background.js) 中有以下代码:
chrome.runtime.onConnect.addListener(function(port)
console.assert(port.name == "knockknock");
port.onMessage.addListener(function(msg)
if (msg.joke == "Knock knock")
port.postMessage(question: "Who's there?");
else if (msg.answer == "Madame")
port.postMessage(question: "Madame who?");
else if (msg.answer == "Madame... Bovary")
port.postMessage(question: "I don't get it.");
);
);
当我在 Chrome 中加载/重新加载扩展程序时,我收到错误消息
Uncaught TypeError: Cannot call method 'addListener' of undefined
代码取自 Chrome 扩展的文档站点,因此它可能是工作代码,只是缺少一些设置。
清单看起来像:
"manifest_version": 2,
"name": "TestMessaging",
"version": "1",
"background" :
"scripts": ["background.js"],
"persistent": false
,
"browser_action":
"default_icon" : "icon.png"
,
"content_scripts": [
"matches": ["http://*/*", "https://*/*"],
"js": [
"contentscript.js"
]
],
"permissions" : [
"tabs",
"https://*/*",
"http://*/*"
]
感谢您的帮助!
【问题讨论】:
文档似乎有误。chrome.runtime.onConnect
未定义 (Chrome 25)。您可以改用chrome.extension.onConnect
(可以使用chrome.extension.connect
触发)。
chrome.runtime.onConnect 已添加到 Chrome 26 中(昨天稳定了)。在此之前,您仍然必须使用 chrome.extension.onConnect。
@RobW 谢谢!你刚刚为我节省了大量时间。非常感谢。
【参考方案1】:
改用chrome.extension.onConnect
(可以用chrome.extension.connect
触发)。
【讨论】:
以上是关于chrome 扩展中不存在 chrome.runtime.onConnect的主要内容,如果未能解决你的问题,请参考以下文章