【发布时间】:2012-07-17 21:28:02
【问题描述】:
这里的文档看起来很糟糕:http://code.google.com/chrome/extensions/messaging.html
我想要我的内容脚本,如果页面上有一个文本区域,则只是显示一个 pageIcon。
我的 content.js(使用 jquery)这样做:
$('textarea').each(function() {
chrome.extension.sendMessage({greeting: "hello"}, function(response) {
console.log(response);
});
});
然后我的 background.js 有这个:
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
chrome.pageAction.show(sender.tab.id);
}
});
这应该非常简单。如果有文本区域,请显示图标。
我尝试了示例代码的各种变体,但没有任何效果。我得到的只是:
端口错误:无法建立连接。接收端不存在。
在控制台中。
任何想法我哪里出错了?
【问题讨论】:
-
Chrome 扩展的文档通常非常出色。您没有正确阅读文档:
chrome.extension.onmessage的事件侦听器仅接收一个参数:包含request、sender、sendResponse的对象。 (从 Chrome 20 开始,onRequestandsendRequesthave been replaced withonMessageandsendMessage)。不过,这可能不是错误的原因。您确定附加了onMessage事件监听器(即没有发生错误)? -
将 onMessage 更改为 onRequest 并再试一次,如果错误仍然存在,那么您必须查看后台脚本的控制台日志(在 Extensions -> Inspect Views: *** 应该有您的脚本,然后点击转到控制台,查看错误消息)
标签: javascript google-chrome google-chrome-extension sendmessage