如何在每个新标签上使用来自API的数据更新chrome扩展标志?

时间:2019-07-03 18:08:01

标签: javascript google-chrome-extension

我想用来自API的数据来更新徽章。我可以使用popup.html中的脚本来更新徽章,但无法通过background.js

来完成

清单包括:

"background": {
    "scripts": ["background.js"],
    "persistent": false
  },

如果我打开扩展弹出窗口,该弹出窗口调用可以正常工作的.js文件,这是该.js文件中的代码:

$.getJSON('url', function(data) {
    var downloads = data.downloads;
    chrome.browserAction.setBadgeText({text:downloads});
});

但是我在background.js中尝试过,但没有成功

chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab) {
    fetch('url').then(response => {
      let data = response.json();
      var downloads = data.downloads
      chrome.browserAction.setBadgeText({"text":downloads});
    });
});

我省略了对数字进行四舍五入的功能,因此它们适合徽标,但我已经考虑到了这一点。

我在做什么错,你能建议我吗?

1 个答案:

答案 0 :(得分:0)

我能够解决问题,我使用提取的方式存在问题。发现this resource可以帮助我解决问题。

新的background.js代码如下所示

chrome.tabs.onUpdated.addListener(function(tabId,changeInfo,tab) {
  fetch(url)
    .then(response => response.json())
    .then(data => {
      console.log(data);
      var downloads = data.downloads;
      chrome.browserAction.setBadgeText({text:downloads});
    })
    .catch(console.error);
});