【问题标题】:Background.js not working Chrome ExtensionBackground.js 不工作 Chrome 扩展
【发布时间】:2013-02-18 02:33:38
【问题描述】:

我是 chrome 扩展的新手,似乎无法弄清楚背景概念是如何工作的。我正在构建一个计数器扩展,即使用户关闭扩展(但不是浏览器),它也会继续计数,并且想做一个简单的测试,看看我是否能弄清楚如何使用背景文件。下面是我尝试创建一个功能,该功能在用户每次单击选项卡(在我的扩展程序之外)时激活,并且当他们单击 5 个选项卡时,会触发警报。我不知道为什么这不起作用。

background.js:

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

manifest.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"
  }
}

【问题讨论】:

    标签: javascript google-chrome google-chrome-extension


    【解决方案1】:

    下面的代码对我有用。

    manifest.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");
        }
    });
    

    如果这不起作用,您能否分享您的相关代码或明确您的问题陈述?

    【讨论】:

    • @user1987920:您的清单中有 default_popup 吗?如果是这样,代码将不起作用!
    • 是的,我愿意。这是否使得 background.js 脚本不加载或什么?
    • @user1987920: chrome.browserAction.onClicked 如果浏览器操作有弹出窗口,则不会触发,您必须使用消息传递来让计数器运行
    • @user1987920:如果您想从弹出页面执行此操作,则不需要,您可以使用 chrome.extension.getBackgroundPage 访问 var counter = 0; 并从弹出页面更新它
    • 为什么 consolge 日志没有打印出来? console.log("counter="+counter);
    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多