Chrome 扩展程序 - onMessageExternal 未定义

Asc*_*rer 1 javascript google-chrome-extension

我正在尝试构建一个与内部应用程序交互的扩展,我正在查看外部消息传递内容的文档,但是每当我尝试访问时chrome.runtime.onMessageExternal.addListener,我都会收到一条错误消息,指出chrome.runtime.onMessageExternal未定义。同样的事情onConnectExternal

清单,json

{
    "manifest_version": 2,

    "name":           "My Extension",
    "description":    "My Desc",
    "version":        "0.2",

    "externally_connectable": {
        "matches": [
            "http://*.mysite.com/*"
        ]
    },

    "author": "Aaron Scherer",

    "content_scripts": [
        {
            "matches": [
                "http://*.mysite.com/*"
            ],
            "js":      ["js/script.js"]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

js/script.js

chrome.runtime.onMessageExternal.addListener(
    function( request, sender, sendResponse ) {
        debugger;
        console.debug( request  );
        console.debug( sender );
        console.debug( sendResponse  );
} );
Run Code Online (Sandbox Code Playgroud)

网站的js

chrome.runtime.sendMessage( 'myextid', { test: 'test' } );
Run Code Online (Sandbox Code Playgroud)

rsa*_*hez 5

chrome.runtime.onMessageExternal仅在后台页面中可用,在内容脚本中不可用。如果您想使用此 api 与内容脚本交谈,您可以通过后台页面中继消息。

另一种选择是使用标准window.postMessage. 如果你在你的内容脚本中设置了一个监听器'message'window.addEventListener你可以接收从页面发送的消息,反之亦然。