0

状態を保存するためにローカル ストレージよりも 1 回だけ実行する必要があるこの 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 を使用して Cookie を試してみましたが、同じ結果です:

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

Cookie Jsfiddle テスト http://jsfiddle.net/JqxVj/5/

4

1 に答える 1

0

Chrome ユーザー以外のサポートが必要な場合は、AmplifyJSを使用できます

すべてのブラウザーで 1 つの構文のみを使用できます...

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

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

ドキュメントを確認して、このプラグインの利点を確認することもできます

于 2013-04-05T16:22:55.400 に答える