Chrome扩展程序 - onMessageExternal undefined

时间:2013-09-16 19:09:11

标签: javascript google-chrome-extension

我正在尝试构建一个与内部应用程序交互的扩展程序,我正在查看documentation的外部消息传递内容,但每当我尝试访问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"]
        }
    ]
}

JS /的script.js

chrome.runtime.onMessageExternal.addListener(
    function( request, sender, sendResponse ) {
        debugger;
        console.debug( request  );
        console.debug( sender );
        console.debug( sendResponse  );
} );

网站的js

chrome.runtime.sendMessage( 'myextid', { test: 'test' } );

1 个答案:

答案 0 :(得分:4)

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

另一种方法是使用标准window.postMessage。如果您在内容脚本中为'message'设置了window.addEventListener的侦听器,则可以接收从该页面发送的消息,反之亦然。