我正在尝试构建一个与内部应用程序交互的扩展程序,我正在查看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' } );
答案 0 :(得分:4)
chrome.runtime.onMessageExternal
仅在后台页面中可用,而不在内容脚本中。如果您想使用此API与内容脚本交谈,您可以通过后台页面转发消息。
另一种方法是使用标准window.postMessage
。如果您在内容脚本中为'message'
设置了window.addEventListener
的侦听器,则可以接收从该页面发送的消息,反之亦然。