Javascript Chrome扩展Chrome.storage.sync.get未定义
我正在开发一个chrome扩展,它要求用户输入自己的密钥,这些密钥必须保存在扩展的选项中。但是,每当我尝试运行options.js时,都会出现以下错误: 未捕获的TypeError:无法读取未定义的属性“sync” 在HTMLDocument.restore_选项中(options.js:15) 我已经更新了manifest.json中的权限,重新加载了扩展并重新启动了浏览器。这是我的第一个chrome扩展,但我已经阅读了所有教程和其他与此相关的问题,无法找出我做得不正确的地方 这是我的密码: manifest.json:Javascript Chrome扩展Chrome.storage.sync.get未定义,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在开发一个chrome扩展,它要求用户输入自己的密钥,这些密钥必须保存在扩展的选项中。但是,每当我尝试运行options.js时,都会出现以下错误: 未捕获的TypeError:无法读取未定义的属性“sync” 在HTMLDocument.restore_选项中(options.js:15) 我已经更新了manifest.json中的权限,重新加载了扩展并重新启动了浏览器。这是我的第一个chrome扩展,但我已经阅读了所有教程和其他与此相关的问题,无法找出我做得不正确的地方 这是我的密码:
{
"manifest_version": 2,
"name": "Web Acknowledgement",
"permissions": [
"storage"
],
"options_page": "options.html",
"options_ui": {
"page": "options.html",
"open_in_tab": true
},
"version": "1.0",
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_scripts": [
{
"matches": [
"*://*/*",
"file://*"
],
"js": [
"private_keys.js",
"jquery-3.5.1.min.js",
"content.js"
],
"run_at": "document_end"
}
],
"icons": {
},
"permissions": [
"tabs"
]
}
options.js:
var api_key = document.getElementById('apikey').value;
chrome.storage.sync.set({
apiKey: api_key,
}, function() {
var button = document.getElementById('save');
button.style.backgroundColor = 'green';
});
}
function restore_options() {
chrome.storage.sync.get({
apiKey: '',
}, function(items) {
document.getElementById('apikey').value = items.apiKey;
});
}
document.addEventListener('DOMContentLoaded', restore_options);
document.getElementById('save').addEventListener('click',
save_options);
我想你可能会看到chrome://extensions 在这种情况下,这是一个旧错误,因此单击“全部清除”按钮将其删除。或者您可以直接以文件的形式打开options.html,这是错误的:您应该从扩展图标菜单或chrome://extensions 佩奇,谢谢你的建议!我尝试了“全部清除”来检查这是否是一个旧错误,但是当再次加载选项页面时,错误再次出现。为了澄清,我没有将选项作为文件加载,而是按照您所说的从图标菜单加载。您在manifest.json中有两个
权限
,所以我猜第二个没有存储的会赢。@wOxxOm我没听清楚!只是改变了它,它成功了!非常感谢你!我想你可能会看到chrome://extensions 在这种情况下,这是一个旧错误,因此单击“全部清除”按钮将其删除。或者您可以直接以文件的形式打开options.html,这是错误的:您应该从扩展图标菜单或chrome://extensions 佩奇,谢谢你的建议!我尝试了“全部清除”来检查这是否是一个旧错误,但是当再次加载选项页面时,错误再次出现。为了澄清,我没有将选项作为文件加载,而是按照您所说的从图标菜单加载。您在manifest.json中有两个权限
,所以我猜第二个没有存储的会赢。@wOxxOm我没听清楚!只是改变了它,它成功了!非常感谢你!