我正试图让一个网页将数据发送到chrome扩展,当用户访问网站时,该扩展会启动(比如谷歌)
manifest.json
{
"manifest_version": 2,
"name": "Test Addon",
"version": "0.01",
"icons": { "16": "icon-16.ico" },
"browser_action": {
"default_icon" : "icon-16.ico",
"default_popup" : "popup.html"
},
"content_scripts": [
{
"matches": ["*://*.google.com/*" ],
"js": ["cs.js"]
}
],
"externally_connectable": {
"matches": ["*://*.mywebsite.com/*"]
}
}
cs.js
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
alert("world");
});
mywebsite.com/testpage.php
// The ID of my chrome extension (In developer mode)
var editorExtensionId = "cjgeckgdpfhnedenpkaanpehddchlkle";
// Send a message
chrome.runtime.sendMessage("Hello");
</script>
据我所知,内容脚本可以访问onMessage和sendMessage,但当我访问谷歌时,我没有收到警报
根据文档,在调用sendMessage()
时,扩展id应该是第一个参数。您只是省略了这个参数
第二个问题是来自外部网页的消息只能接收后台脚本。检查文档中的onMessageExternal()
使用此代码向后台扩展脚本发送消息:
// The ID of my chrome extension (In developer mode)
var editorExtensionId = "cjgeckgdpfhnedenpkaanpehddchlkle";
// Send a message
chrome.runtime.sendMessage(editorExtensionId, "Hello");