4

这里的文档看起来很糟糕: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);
    } 
});

这应该非常简单。如果有文本区域,则显示图标。

我已经尝试了示例代码的各种变体,但没有任何效果。我得到的只是:

端口错误:无法建立连接。接收端不存在。

在控制台中。

有什么想法我哪里出错了吗?

4

1 回答 1

6

我认为您在后台脚本中有一个额外的大括号。

chrome.extension.onMessage.addListener(

    function(request, sender, sendResponse) {
        chrome.pageAction.show(sender.tab.id);
    } 
});

应该

chrome.extension.onMessage.addListener(

    function(request, sender, sendResponse) {
        chrome.pageAction.show(sender.tab.id);
    } 
);
于 2012-08-17T18:41:32.463 回答