2

コンテンツスクリプトからバックグラウンドページにメッセージを送信し、送信されたメッセージに従ってアラートを表示できるGoogle Chrome拡張機能を構築しようとしています。

マニフェスト.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!'); });

background.html

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

しかし、バックグラウンド ページからアラートを受け取りません。

4

2 に答える 2

0

コードの問題

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

else if{Javaスクリプトの使用はありませんelse {

作業バージョン

background.html

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

background.js

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 
if(request.message=="execute"){
    alert("message received!");
}else{
    alert("message not received!");
}
});
于 2013-02-22T08:59:06.510 に答える
0

jsにはelse ifがありますが、 else if()にする必要があります。したがって、else if()を省略しました。あなたの場合、それ以外は十分です。

于 2013-02-26T05:58:16.660 に答える