Javascript 将消息传递到后台页面的Chrome扩展

Javascript 将消息传递到后台页面的Chrome扩展,javascript,google-chrome,google-chrome-extension,google-chrome-devtools,Javascript,Google Chrome,Google Chrome Extension,Google Chrome Devtools,我正在尝试建立一个谷歌浏览器扩展,它可以发送一条消息到后台页面的内容脚本和显示警报根据发送的消息 Manifest.json { "manifest_version": 2, "name": "fb_rainbow", "description": "Change Facebook Themes Colors", "version": "1.1", "background": { "page":"background.html" }, "browser_acti

我正在尝试建立一个谷歌浏览器扩展,它可以发送一条消息到后台页面的内容脚本和显示警报根据发送的消息

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(可以工作并获得警报)

background.html

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 
if(request.message=="execute"){
    alert("message received!");
}else if{
    alert("message not received!");
}
});
但是我没有从后台页面收到任何警报。

代码中存在问题 如果java脚本中的{使用
else{
,则没有
else

工作版本 background.html js中有else if,但是它应该是else if()。因此您省略了else if()。 在您的情况下,else就足够了。

“后台”是清单部分中的有效权限。请参阅。
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!");
}
<html>
<head>
<script src="background.js"></script>
</head>
<body>
</body>
</html>
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 
if(request.message=="execute"){
    alert("message received!");
}else{
    alert("message not received!");
}
});