我正在将chrome扩展移植到Firefox。Chrome 中一切都很好,但以下代码在 Firefox 中生成错误。
localStorage.setItem("display_tooltip", false);
data = localStorage.getItem('display_tooltip');
if(data.display_tooltip) //line where error occurs
display_tooltip = true;
else
display_tooltip = false;
我在火狐上收到一个错误,说数据为空。我哪里做错了。当我运行 chrome 扩展程序时,相同的代码可以完美运行。我正在使用火狐插件-sdk。
localStorage 存储字符串而不是布尔值,因此您必须相应地进行比较。并且您需要检查data
变量而不是data.display_tooltip
,因为:
localStorage.setItem("display_tooltip", false);
data = localStorage.getItem('display_tooltip');
// variavle 'data' holds value stored in 'display_tooltip' variable
if(data == "true") {
//your code
alert("True");
}
else {
//false, your code
alert("False");
}
演示:: js小提琴
它不适用于任何浏览器。
您正在将"false"设置为变量data
因此data.display_tooltip
不存在。
只需询问data
的值:
if (data == 'true')
display_tooltip = true;
else
display_tooltip = false;
请注意,localStorage
不存储布尔值,因此在检查值时需要询问"true"字符串。
你的数据是:
data = localStorage.getItem('display_tooltip')
为什么使用data. display_tooltip
进行检查?只是if (data) { ... }
.也许您需要检查data
的类型.也许它是一串真或假,但不是布尔值。