10

私はクロム拡張機能が初めてで、背景の概念がどのように機能するかを理解できないようです。ユーザーが拡張機能を閉じても (ブラウザではなく) カウントし続けるカウンター拡張機能を構築しており、バックグラウンド ファイルの使用方法を理解できるかどうかを確認するための簡単なテストを行いたいと考えていました。以下は、ユーザーがタブ (拡張機能の外側) をクリックするたびにアクティブになり、5 つのタブをクリックするとアラートが発生する関数を作成しようとする試みです。これが機能しない理由がわかりません。

background.js:

var counter = 0;
chrome.browserAction.onClicked.addListener(function(tab){
  counter++;
  if (counter == 5) {
    alert("Hi");
  }
});

マニフェスト.json:

 {
  "name": "Hello World!",
  "description": "My first packaged app.",
  "version": "0.1",
  "permissions": ["tabs", "http://*/*"],
  "manifest_version":2,
  "content_scripts": [ {
    "js": [ "jquery-1.9.1.js", "myscript.js" ],
    "matches": [ "http://*/*", "https://*/*"]
  }],
  "background": {
    "scripts": [
       "background.js"
    ]
  },
  "browser_action": {
    "default_title": "10,000 Hours",
    "default_icon": "icon16.png",
    "default_popup": "index.html"
  },
  "icons": {
    "16": "icon16.png",
    "48": "icon48.png",
    "128": "icon128.png"
  }
}
4

1 に答える 1

12

次のコードで動作しています。

マニフェスト.json

{
    "name": "Popping Alert",
    "description": "http://stackoverflow.com/questions/15194198/background-js-not-working-chrome-extension",
    "background": {
        "scripts": [
            "background.js"
        ]
    },
    "version": "1",
    "manifest_version": 2,
    "browser_action": {
        "default_title": "Click Me"
    }
}

background.js

var counter = 0;
chrome.browserAction.onClicked.addListener(function (tab) {
    counter++;
    if (counter == 5) {
        alert("Hey !!! You have clicked five times");
    }
});

これが機能しない場合は、関連するコードを共有したり、問題の説明を明確に記載したりできますか?

于 2013-03-04T05:53:26.720 に答える