我有一个简单的插件,只做这样的事情:
chrome.extension.onMessage.addListener(function(msg, _, sendResponse) {
log("Got message from background page: " + msg);
});
不幸的是,当我的面板加载时,会显示以下错误:
TypeError: Cannot call method 'addListener' of undefined
根据我的测试chrome.extension.onMessage
是undefined
根据此页http://code.google.com/chrome/extensions/messaging.html我应该可以从我的页面访问此chrome API,因此它必须是我在这里缺少的小东西......
答案 0 :(得分:3)
请注意,此答案中最初建议的方法chrome.extension.onRequest
和chrome.extension.sendRequest
自Chrome 33起已弃用。
你应该使用
chrome.extension.onRequest
而不是
chrome.extension.onMessage
在后台页面或任何其他扩展脚本中:
chrome.tabs.sendRequest
而不是
chrome.tabs.sendMessage
(文档已过时......提醒谷歌团队;))
答案 1 :(得分:0)
只是旁注:Yandex浏览器(主要面向俄罗斯人)也基于Chromium(截至2012年10月11日,版本1.0)具有。* Request方法而不是。*消息。非常感谢Ciprian Amariei提示,这给我节省了很多时间!
PS:这实际上应该是对Ciprian Amariei的答案的评论,但遗憾的是我还不能留下评论,而且这些信息对于那些为Yandex浏览器开发扩展的人来说非常有帮助。答案 2 :(得分:0)
确保您使用的是最新的Google Chrome版本。旧版本没有chrome.extension.onMessage API。