消息在页面到扩展之间传递

时间:2015-08-05 12:47:13

标签: javascript google-chrome-extension message-passing

所以我的网页上没有执行的脚本只能在扩展程序中工作,

document.getElementById("test").addEventListener("click", function () {
        var e = document.getElementById("exe");
        var strUser = e.options[e.selectedIndex].value;
        if (strUser == "note") {
            chrome.extension.connectNative('note');
        }
        if (strUser == "calc") {
            chrome.extension.connectNative('calc');
        }
    });

我理解逻辑,但我缺乏经验。据我所知,我需要通过消息传递将我的脚本功能传递到html页面,但我不能这样做。我没有clue.eq

1 个答案:

答案 0 :(得分:0)

chrome.extension 毫不奇怪,仅适用于扩展程序代码。顺便说一下,你应该真正使用chrome.runtime.connectNative,但同样适用。

您有两个广泛的选择:

  1. 在页面中添加content script,让它添加点击侦听器,然后将请求传递到您的后台页面。内容脚本可以与您的后台进行通信,但无法自行执行connectNative

  2. 如果是针对固定网站,您可以让网站本身向扩展程序的后台页面发送消息。这使用externally_connectable,并解释为here

  3. 同样,您需要一个background script(在event script上)来处理启动某些内容的请求,因为这是唯一能够(1)获得特权的内容要做到这一点,(2)始终可以处理请求。