-2

この JavaScript 関数は、(特定の基準が満たされたときに) 1 回だけ実行する必要があり、Cookie がそれを記憶し、24 時間は再度実行しないようにする必要があります。

jquery.cookie.js プラグインを使用するこのスクリプトを試しましたが、機能しません。

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

function load() {

  if (eventsFired == 0){

    if (window.frames[0].document.getElementById('applications')) {
      var str=document.getElementById("tst").innerHTML;
      var n=str.replace("Login","Logout");
      document.getElementById("tst").innerHTML=n;
      document.getElementById('tst').title ='logout';
      document.getElementById('tst').href='logout';
      document.getElementById('prt').href='../profile/cont.html';
      eventsFired++;
      $.cookie('eventsFired', eventsFired);
    }
  }
}

ローカルストレージ :

function load() {
var eventsFired = localStorage.getItem('fired');

if (eventsFired == '1'){
  if (window.frames[0].document.getElementById('applications'))
{
var str=document.getElementById("tst").innerHTML;
var n=str.replace("Login","Logout");
document.getElementById("tst").innerHTML=n;
document.getElementById('common').href='..css/common2.css';
document.getElementById('tst').title ='logout';
document.getElementById('tst').href='logout';
document.getElementById('prt').href='../profil/cont.html';
  localStorage.setItem('fired', '1');
}
}
}
4

1 に答える 1

4

Cookie は使用しないでください。リクエストごとにサーバーに送信されます。代わりにローカル ストレージを使用できます。

function load() {
  var eventsFired = localStorage.getItem('fired');

  if (eventsFired != '1'){
      doYourStuff();
      localStorage.setItem('fired', '1');
  }
}
于 2013-04-04T19:09:15.597 に答える