[英]Can't use localStorage value in my Google Chrome extension
[英]Why is my localStorage checkbox/boolean value comparison not working for my Google Chrome Extension?
我已经成功将布尔变量映射到我的本地存储变量,该变量由我的Chrome扩展程序的options.html页面上的复选框触发。
我想知道的是,根据是否在我的popup.html(浏览器按钮事件)的选项中选中该复选框的方式,显示/隐藏元素的最佳方法是什么。下面的jQuery $(“#myElement”)。hide(); 不起作用-我也不希望它...但是作为一种控制向最终用户显示这些元素的最佳方法,我有些茫然。
注意:显示:CSS也不是一个选项-我只是不知道实现此目的的最佳方法。
var value = localStorage["myCheckbox"];
alert(localStorage.getItem('store.settings.myCheckbox'));
if (value != null)
alert(value);//this works (true if checked, false if not checked...)
if (!value){
alert('hide the element');
$("#myElement").hide(); //hide a div element in my popup (chrome extension button popup)
}
我假设您正在将复选框的.checked
属性分配给localStorage["myCheckbox"]
,因此,由于localStorage
变量只能是字符串 ,所以可以是"true"
或"false"
,具体取决于复选框的州。
您的错误是这样做的:
if (!value) {
...
}
上面的条件永远不会满足 ,因为非空字符串(例如“ true”或“ false”)在JavaScript中始终为true
,因此!"string"
始终为false。 因此,要检查popup.js
复选框的值,您应该执行以下操作:
var isChecked = localStorage.myCheckbox === "true";
if (!isChecked) $('#myElement').hide();
// if the checkbox is not checked hide the element
好吧,我修复了第一个问题-(它正在返回字符串,所以我需要使用===)
但是,我仍然需要找出执行第2部分的最佳方法-显示/隐藏功能。 我将发布一个新问题,并使用链接对其进行更新。 非常感谢您的帮助,Marco!
var value = localStorage["myCheckbox"];
var isChecked = localStorage.getItem('store.settings.myCheckbox');
if (isChecked === "false"){
alert('its FALSE');
$('#myElement').hide();
}
if (isChecked === "true"){
alert('its TRUE');
$('#myElement').show();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.