2013-04-05 127 views
0

我有這個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餅乾嘗試,同樣的結果:

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); 
}} 

餅乾的jsfiddle測試http://jsfiddle.net/JqxVj/5/

+2

什麼叫'load()'? – j08691 2013-04-05 15:56:44

+0

什麼都沒有了。我刪除它。 – marius 2013-04-05 16:01:58

+0

你的小提琴似乎對我來說工作得很好(如果你叫'load')。你的瀏覽器是否支持localStorage? – GJK 2013-04-05 16:09:29

回答

0

如果您需要比Chrome用戶更多的支持,你可以使用AmplifyJS

它讓你在所有瀏覽器只使用一種語法...

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

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

您還可以查看the documentation並查看此插件的優點

+0

你能否把外部資源添加到小提琴並使其適用於我的情況? – marius 2013-04-05 16:46:34

+0

當然,這是一個通用的例子:http://jsfiddle.net/9t4Wb/12/ – Pouki 2013-04-08 07:19:05

+0

這是放大示例:http://jsfiddle.net/9t4Wb/13/ 希望這可以幫助 – Pouki 2013-04-08 07:20:21