我想用来自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});
});
});
我省略了对数字进行四舍五入的功能,因此它们适合徽标,但我已经考虑到了这一点。
我在做什么错,你能建议我吗?
答案 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);
});