javascript - 消息从外部网页传递到 Chrome 插件

标签 javascript php google-chrome google-chrome-extension

我正在尝试让网页将数据发送到 Chrome 扩展程序,该扩展程序将在用户访问网站时触发(此处为 google)

ma​​nifest.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/

相关文章:

javascript - HTML5 video.play 返回未决 promise

php - 如何使用 javascript 或 jQuery 进行计算,从各种不同的元素中获取值?

javascript - JQUERY 更改父元素中子元素的文本或值

javascript - 将字符串传递给函数与使用默认参数调用函数之间的区别?

javascript - 如何在文档准备好时折叠 Accordion

php - 排除 MySQLi Select/Like 搜索中的重复返回

javascript - 禁用回车键 Chrome 扩展程序

php - 您可以在 laravel3 中使用查询构建器在运行时使用动态 WHERE 子句构建查询吗?

php - Doctrine 2 添加自动生成序列值的新字段

google-chrome - 如何使用 Google Cast Chrome 扩展程序转换 HTML 页面?