chrome 扩展程序运行时如何动态更改图标 badge

发布于 2022-09-02 11:45:02 字数 401 浏览 21 评论 0

写了一个简单地扩展程序,主要目的是动态的更改图标的badge,js代码如下:

$(document).ready(function(){
    setInterval(getResult,5000);        
});

function getResult(){
    var today = new Date();
    var s = today.getSeconds();
    var details = {
        text:s+''
    }
    chrome.browserAction.setBadgeText(details);
}

但是发现这个badge不会更新,不知道是什么问题。如果把审查弹出内容同时打开,那么可以看到badge是自动更新的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

手心的海 2022-09-09 11:45:02

暂时没法上网,没法查文档。
我只能先猜测一下:是不是权限问题,比如在manifest.json中开启chrome.browerAction的权限。

另外,我记得setInterval已经被chrome扩展禁用了的吧?还能用?

指尖凝香 2022-09-09 11:45:02
window.onload = function(){

    var i = 0;
    setInterval(function(){
        chrome.browserAction.setBadgeText({text:i+''});
        i+=1;
    },5000);
    
}

//background.js

测试并没有问题。Chrome/47.0.2526.106

别靠近我心 2022-09-09 11:45:02

setInterval函数可以使用,我的代码也没有问题,只是放错位置了。js函数应该放到background.html文件中。

套路撩心 2022-09-09 11:45:02

提供一下你的 manifest.json 文件

  "background": {
    "scripts": [
      "js/event.js"
    ],
    "persistent": true // <- 这里
  },

要让背景页面一直生效,需要指定 persistent: true,不然过一会儿会自动被杀掉。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文