7

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

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,所以它必须是我在这里缺少的一些小东西......

4

3 回答 3

3

请注意方法chrome.extension.onRequestchrome.extension.sendRequest,正如最初在此答案中建议的那样,自 Chrome 33 起已弃用。


你应该使用

chrome.extension.onRequest

代替

chrome.extension.onMessage

在后台页面或任何其他扩展脚本中:

chrome.tabs.sendRequest

代替

chrome.tabs.sendMessage

(文档已过时......提醒谷歌团队;))

于 2012-06-29T15:07:32.933 回答
0

确保您使用的是最新的 Google Chrome 版本。旧版本没有 chrome.extension.onMessage API。

于 2013-01-21T08:05:20.700 回答
0

附带说明:同样基于 Chromium 的 Yandex 浏览器(主要面向俄罗斯人)(截至 2012 年 11 月 10 日,版本 1.0)具有 .*Request 方法而不是 .*Message。非常感谢 Ciprian Amariei 的提示,它为我节省了很多时间!

PS:这实际上应该是对 Ciprian Amariei 的回答的评论,但不幸的是我还不能发表评论,尽管这些信息可能对那些为 Yandex 浏览器开发扩展的人非常有帮助。

于 2012-10-11T08:12:46.710 回答