javascript - Chrome 扩展程序将消息传递到后台页面

标签 javascript google-chrome google-chrome-extension google-chrome-devtools

我正在尝试构建一个 Google Chrome 扩展程序,它可以从内容脚本向后台页面发送消息,并根据发送的消息显示警报。

Manifest.json

{
  "manifest_version": 2,

  "name": "fb_rainbow",
  "description": "Change Facebook Themes Colors",
  "version": "1.1",
  "background": {
  "page":"background.html"
  },
  "browser_action": {
        "default_icon": "icon.png",
        "popup":"popup.html"
    },
"permissions": [
    "tabs",
    "http://*/*",
    "https://*/*",
    "notifications",
    "contextMenus",
    "background"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"web_accessible_resources":["injectin.js"],
  "content_scripts": [
    {
      "matches": ["*://*.facebook.com/*"],
      "js": ["color_change.js"]
    }
  ]

color_change.js(有效并且可以获得警报)

chrome.extension.sendMessage( {message:'execute'} , function() { alert('message sent!'); });

背景.html

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 
if(request.message=="execute"){
    alert("message received!");
}else if{
    alert("message not received!");
}
});

但我没有收到来自后台页面的任何警报。

最佳答案

代码中的问题

if(request.message=="execute"){
    alert("message received!");
}else if{
    alert("message not received!");
}

Java 脚本中没有 else if{,请使用 else {

工作版本

背景.html

<html>
<head>
<script src="background.js"></script>
</head>
<body>
</body>
</html>

背景.js

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 
if(request.message=="execute"){
    alert("message received!");
}else{
    alert("message not received!");
}
});

关于javascript - Chrome 扩展程序将消息传递到后台页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15016855/

相关文章:

javascript - 从 anchor 链接直接链接到选项卡

google-chrome - 无法加载资源:net::ERR_INCOMPLETE_CHUNKED_ENCODING

css - chrome 定位与 firefox 不同的元素

javascript - ES6 转译器中的导入/导出

google-chrome-extension - ClojureScript 中的 Chrome 扩展中的消息传递

javascript - 用于自动填写 Angular 创建的用户密码表单的内容脚本

oauth - 在 Chrome 扩展程序和 Gmail 小工具中安全处理 OAuth 使用者 key 和 secret

javascript - 忽略 javascript 调试器中的 onMouseMove

javascript - Uncaught RangeError : Duration field days not supported by Temporal. Instant(在不使用魔数(Magic Number)的情况下将 1 天添加到临时瞬间)

javascript - 如果 IE 条件不起作用