我正在尝试让网页将数据发送到 Chrome 扩展程序,该扩展程序将在用户访问网站时触发(此处为 google)
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,但当我访问 google 时我没有收到警报
最佳答案
根据docs ,扩展 ID 应该是调用 sendMessage()
时的第一个参数。您只是省略了这个参数。
第二个问题是来自外部网页的消息只能接收后台脚本。检查docs对于onMessageExternal()
。
使用此代码向您的后台扩展脚本发送消息:
// The ID of my chrome extension (In developer mode)
var editorExtensionId = "cjgeckgdpfhnedenpkaanpehddchlkle";
// Send a message
chrome.runtime.sendMessage(editorExtensionId, "Hello");
关于javascript - 消息从外部网页传递到 Chrome 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34698942/