访问chrome.storage.local的问题.从options.html中设置/获取
Problems with accessing chrome.storage.local.set/get from options.html
从options.html中调用以下代码:
$('#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('this function is called!');
在秒后开始调用点击相应的按钮。这是否意味着我不能使用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>
我需要这个类别到我的内容脚本。
FORM
不是一个void元素,所以在开始标签的末尾写上/>
并不会关闭它:
开始标签由以下部分组成,顺序完全如下:
- 一个"<"字符。
- 元素的标签名。
- 可选的一个或多个属性,每个属性之前必须有一个或多个空格字符。
- 可选,一个或多个空格字符。
- 可选,一个"/"字符,只有当元素是void元素时,才可能出现。
- 一个">"字符。
BUTTON
元素实际上是在表单内部,你可以在元素检查器中看到,因此提交表单点击,重新加载文档,你可以在devtools网络面板中看到。
解决方案:
- 通过在click处理程序中使用
return false
来防止默认事件动作:jQuery将其转换为event.preventDefault()
和event.stopPropagation()
。 使用
type="button"
属性:<button type="button" id="go-button">Go!</button>
相关文章:
- 如何设置html元素填充的动画
- 使用 js 将背景图像设置为 HTML
- HTML范围:动态设置值属性
- 无法使用nodeJS在html中设置Image src
- 如何为HTML分配/设置值
- 使用val()在jquery循环中设置html字符串的val
- 使用jQuery按条件将样式设置为html标记
- 使用c#将用户数据设置为HTML标记
- 如何通过内部HTML设置图像
- 使用jQuery.html设置带有提交按钮的表单
- Javascript(jQuery)/HTML:设置<输入>或者<选择>启用,不工作
- 通过HTML设置TinyMCE文本区域的内容
- 将框的内部HTML设置为多个数组之一的元素
- 为表的内部 HTML 设置条件
- 在运行ajax请求时,无法将内部html设置为null
- 如何将javascript中的html设置到元素中的特定位置
- 使用ng-bind-html设置HTML中的Angular绑定
- 通过修改html设置在web表单上上传的默认文件名/目录
- 无法将内部HTML设置为字符串变量
- 从mapbox中的外部HTML设置视图并触发单击标记