[英]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.