Javascript 如何在每个新选项卡上使用API中的数据更新chrome扩展徽章?
我想用API中的数据更新徽章。我可以用Javascript 如何在每个新选项卡上使用API中的数据更新chrome扩展徽章?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我想用API中的数据更新徽章。我可以用popup.html中的脚本更新徽章,但无法通过background.js 舱单包括: "background": { "scripts": ["background.js"], "persistent": false }, 如果我打开extensions弹出窗口,它调用一个正常工作的.js文件,这是该.js文件中的代码: $.getJSON('url', function(data) { var downloads = dat
popup.html
中的脚本更新徽章,但无法通过background.js
舱单包括:
"background": {
"scripts": ["background.js"],
"persistent": false
},
如果我打开extensions弹出窗口,它调用一个正常工作的.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});
});
});
我省略了对数字进行四舍五入的功能,因此它们适合徽章,但我已经考虑到了这一点
我做错了什么,你能告诉我吗?我解决了这个问题,我如何使用fetch出现了问题。我发现这帮我修好了 新的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);
});
response.json()。您需要另一个then()
。此外,您可能需要在setBadgeText()中指定tabId
,有关详细信息,请参阅文档。