Chrome扩展程序[onConnect.addListener,port.postMessage]:如何将msg从我的扩展程序发送到安装在任何计算机上的扩展程序?

时间:2012-03-01 13:45:35

标签: google-chrome-extension chat sendmessage postmessage

如标题所述,我想知道如何将消息发送到通过任何计算机安装的扩展程序。

我使用了script.js(进入background_page):

chrome.extension.onConnect.addListener(function(port) {
    if(port.name == 'myport')  
    port.onMessage.addListener(function(msg){
        console.log(msg.text, msg.nick, msg.date);
        port.postMessage({ backTxt:msg.text, backNick:msg.nick, backDate:msg.date   });
    });

});

我在script.js中创建了createHTMLNotification("otherpage.html")。 进入'otherpage.html'我有manage_msg.js。

mnage_msg.js:

"when keydow event == 'enter' " -> port.postMessage({text:text, nick:nick, date:date});    

port = chrome.extension.connect({name: "myport"});

port.onMessage.addListener(function(msg) {
            html = '<div class="date">'+msg.backDate+'</div><div class="nick">'+msg.backNick+'</div><div class="testo"></div>';

            box_chat = new Element("div",{ class:"box", html:html });
            box_chat.inject($("container_boxes"));
            box_chat.getElements(".text")[0].set("text", msg.backTxt);

            canISetSlider();
        });

问题是这样的消息只发送给我,即发件人。因此,只有我的HTMLNotification才会更新。

1 个答案:

答案 0 :(得分:0)

此机制并非设计用于在其他浏览器中将消息发送到您的扩展程序的其他实例 - 它旨在在您的扩展程序中的不同上下文之间发送消息。如果您希望与插件的其他实例进行通信,则可能需要使用外部服务器,该服务器将消息从您的计算机传送到其他人的计算机。