本地存储不起作用

时间:2013-04-05 15:53:43

标签: javascript local-storage

我有这个javascript,我只需要运行一次,而不是本地存储来保存状态。脚本在注销时更改登录。即使页面刷新我也不希望执行脚本:

var str=document.getElementById("tst").innerHTML;
var n=str.replace("Login","Logout");
document.getElementById("tst").innerHTML=n;

html:

<a href="login" title="log in" class="login_button" id="tst">Login</a></span>

我尝试使用此代码,但现在根本不会触发脚本:

 var eventsFired = localStorage.getItem('fired');
 if (eventsFired != '1'){
 if (document.getElementById('tst')){
 var str=document.getElementById("tst").innerHTML;
 var n=str.replace("Login","Logout");
 document.getElementById("tst").innerHTML=n;
 localStorage.setItem('fired', '1'); 
 } } 

Js小提琴链接http://jsfiddle.net/9t4Wb/4/

我甚至尝试使用jquery.cookies.js使用cookies,结果相同:

var eventsFired = ($.cookie('eventsFired') != null)
? $.cookie('eventsFired')
: 0;

if (eventsFired == 0){

if (document.getElementById('tst'))
{
var str=document.getElementById("tst").innerHTML;
var n=str.replace("Login","Logout");
document.getElementById("tst").innerHTML=n;
eventsFired++;
$.cookie('eventsFired', eventsFired);
}}

Cookies Jsfiddle test http://jsfiddle.net/JqxVj/5/

1 个答案:

答案 0 :(得分:0)

如果您需要支持Chrome用户以外的其他用户,可以使用AmplifyJS

它让你在所有浏览器上只使用一种语法......

//Set value
amplify.store("myKey", myObject)

//Get value
amplify.store("myKey") // return myObject

您还可以查看the documentation并查看此插件的优势