我正在编写一个 chrome 扩展,我想用 chrome 存储管理所有数据/变量。据我了解,我应该能够在我的扩展程序中使用 chrome.storage。
我想在 browser_action 脚本中设置一些东西,然后在后台脚本创建的窗口中访问它。HTML 和 JS 文件都有相应的名称。
这是我没有运气的尝试:
//manifest.json
{
"manifest_version": 2,
"name": "extension",
"description": "my extension",
"version": "0.1",
"permissions": [
"tabs",
"storage"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_icon": {
"38": "images/icon38.png"
},
"default_popup": "settings.html"
}
}
//背景.js
chrome.windows.create({'url': chrome.extension.getURL("newPage.html"),'type': "detached_panel",'focused': true}, function(){
//created newPage.html which has newPage.js
});
//setting.js
document.addEventListener('DOMContentLoaded', function(){
chrome.storage.local.set({'enabled': 'TRUE'});
});
//newPage.js
chrome.storage.local.get('enabled', function(result){
document.getElementById("myId").innerHTML += "<br>script loaded... and status: " + result.enabled;
});
当我这样做时,newPage.html 显示“脚本已加载...和状态:未定义”。
即使它是异步的,也应该在第二次运行脚本时填充存储值,对吗?
我可能只是使用不正确。如果是这种情况,在我的新窗口中设置 chrome 存储以访问的正确方法是什么?
任何帮助,将不胜感激!