Javascript 访问chrome.storage.local.set/get from options.html时出现问题
从my options.html调用以下代码:Javascript 访问chrome.storage.local.set/get from options.html时出现问题,javascript,google-chrome-extension,Javascript,Google Chrome Extension,从my options.html调用以下代码: $('#go-button').click(function () { var selectedCategories = GetSelectedCategories(); chrome.storage.local.set({ 'selectedCategories': selectedCategories }, function () { console.log('this function
$('#go-button').click(function () {
var selectedCategories = GetSelectedCategories();
chrome.storage.local.set({ 'selectedCategories': selectedCategories }, function () {
console.log('this function is called!');
chrome.storage.local.get('selectedCategories', function (result) {
console.log('local.get result: ' + result.selectedCategories);
})
//window.close();
});
});
seceltedCategories
var很好-我已经在控制台中检查过了。意味着,GetSelectedCategories()
方法工作正常
但是console.log('local.get result:'+result.selectedCategories)代码>永远不要打电话
console.log('调用此函数!')代码>在第二次单击相应按钮后开始调用。这是否意味着我不能使用options.js访问storage.local
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="/bower_components/jquery.min.js"></script>
<script type="text/javascript" src="options.js"></script>
</head>
<body>
<form id="listOfCategories_form" />
<button id="go-button">Go!</button>
</body>
</html>
走!
我需要将这些类别添加到我的内容脚本中 表单
不是一个表单,因此在其开始标记末尾写入/>
不会关闭它:
开始标记由以下部分组成,顺序如下:
- “”字符
按钮
元素实际上位于表单内部,如您在元素检查器中所看到的,因此在单击时提交表单,如您在devtools网络面板中所看到的那样重新加载文档
解决方案:
- 通过在单击处理程序中使用
return false
来防止默认事件操作:jQuery将其转换为event.preventDefault()
和event.stopPropagation()
- 使用
type=“button”
属性:Go代码>
以及从GetSelectedCategories
返回什么类型的数据?它对JSON友好吗?@Xan只是一维字符串数组,比如['category1','category2']
。快速检查是否正常:什么类型的元素是#go按钮
?是在一张表格里吗?@Xan哈哈<代码>开始代码>但我使用jQuery按id选择此按钮。为什么我要将其放入表单中?我只是检查它是否实际存在。情况似乎并非如此。