Javascript setBadgeText chrome扩展丢失计数数字
如果方法SetBadgeText不丢失计数数字,这是可能的吗?我正在挣扎的是,当我点击一个按钮,计数器开始计数,然后我要检查其他一些页面,有时计数从零开始,同样的事情是当我想关闭chrome并再次打开它时。如何将实际的setBadgeText编号保存在内存中,并从最新编号开始,而不丢失它 background.js content-script.jsJavascript setBadgeText chrome扩展丢失计数数字,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,如果方法SetBadgeText不丢失计数数字,这是可能的吗?我正在挣扎的是,当我点击一个按钮,计数器开始计数,然后我要检查其他一些页面,有时计数从零开始,同样的事情是当我想关闭chrome并再次打开它时。如何将实际的setBadgeText编号保存在内存中,并从最新编号开始,而不丢失它 background.js content-script.js document.body.addEventListener('click', e => { if(e.target.matches
document.body.addEventListener('click', e => {
if(e.target.matches('[value="Google Search"]')) {
chrome.runtime.sendMessage('clicked')
}
});
manifest.json
{
"manifest_version": 2,
"name": "Counter",
"version": "1.0",
"content_scripts": [
{
"matches": ["https://*/*"],
"run_at": "document_end",
"js": ["content-script.js"]
}
],
"description": "description",
"background": {
"persistent": false,
"scripts": ["background.js"]
},
"browser_action": {
"default_title": "counter"
}
}
使用存储API:
同步存储将同步到您登录的任何Chrome浏览器。本地存储是本地的
以下是如何将存储API集成到示例中:
// background.js
chrome.runtime.onMessage.addListener(message => {
if(message === 'clicked') {
chrome.storage.local.get('counter', ({counter}) => {
counter += 1;
chrome.browserAction.setBadgeText({
text: counter.toString()
});
chrome.storage.local.set('counter', counter)
})
}
});
您还需要将存储权限添加到清单中:
// manifest.json
{
...
"browser_action": {
"default_title": "counter"
},
permissions: [
"storage"
]
}
是的,但如何将其与setBadgetext连接?我只找到了主要使用HTML的函数。添加了一个示例,这让我更清楚了。你的回答对我很有帮助。你能告诉我当我关闭Chrome并想再次打开它时,我应该使用什么函数、变量来加载计数器编号吗?当我关闭Chrome并想再次打开它时,我应该使用什么函数、变量来加载计数器编号?chrome存储API允许您保存数据,并在chrome重新启动后再次加载数据。这就是你的意思吗?对不起,我写错了。我想说。如果chrome.storage.local.set'counter',counter保存最新的数字,当我想继续计数时,我应该使用什么命令再次加载它?
// manifest.json
{
...
"browser_action": {
"default_title": "counter"
},
permissions: [
"storage"
]
}