chrome.extension.onMessage未定义

时间:2012-06-28 14:16:15

标签: api google-chrome google-chrome-extension

我有一个简单的插件,只做这样的事情:

chrome.extension.onMessage.addListener(function(msg, _, sendResponse) {
    log("Got message from background page: " + msg);
});

不幸的是,当我的面板加载时,会显示以下错误:

TypeError: Cannot call method 'addListener' of undefined

根据我的测试chrome.extension.onMessageundefined

根据此页http://code.google.com/chrome/extensions/messaging.html我应该可以从我的页面访问此chrome API,因此它必须是我在这里缺少的小东西......

3 个答案:

答案 0 :(得分:3)

请注意,此答案中最初建议的方法chrome.extension.onRequestchrome.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。

相关问题