消息从外部网页传递到chrome插件


Message passing from external webpage to chrome addon

我正试图让一个网页将数据发送到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");