Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只执行一次JavaScript函数并记住它_Javascript_Html_Cookies_Local Storage - Fatal编程技术网

只执行一次JavaScript函数并记住它

只执行一次JavaScript函数并记住它,javascript,html,cookies,local-storage,Javascript,Html,Cookies,Local Storage,我有一个JavaScript函数,我只需要执行一次(当满足某些条件时),然后让Cookie记住它,在24小时内不再运行它 我尝试了这个使用jquery.cookie.js插件的脚本,但它不起作用: var eventsFired = ($.cookie('eventsFired') != null) ? $.cookie('eventsFired') : 0; function load() { if (eventsFired == 0){ if (window.frames[

我有一个JavaScript函数,我只需要执行一次(当满足某些条件时),然后让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');
}
}
}

不要使用cookie:它将在每次请求时发送到服务器。您可以改为使用:


请描述“行不通”的含义。您的控制台上有错误吗?发生了什么(如果有的话)。我希望脚本只运行一次,cookies会记住第一次执行时所做的更改,即更改父页面上的那些元素。console:TypeError:$.cookie不是函数[Break On This Error]var eventsFired=($.cookie('eventsFired')!=null)错误消息是关键,应该明确包含在您的问题中。看起来好像您没有正确地包含cookie库。本地存储:如果(eventsFired!=“1”)cookie库现在正常,没有控制台错误,但是cookie在函数执行并在每次刷新时运行后仍然没有保存状态。我更新了帖子,我在我的脚本上实现了你的代码,但现在根本不会触发脚本。请检查一下,我做错了什么?对不起,有个打字错误。请重试。仍不工作,函数现在不触发。也许我没有说清楚:我的函数在注销时更改登录,一个css文件与另一个css文件一起更改,等等。我需要脚本运行一次以进行更改,将该状态保存到localstorage(带有更改),然后,在下一次刷新时,脚本将不会运行,但人们将在脚本第一次运行时看到所做的更改。
function load() {
  var eventsFired = localStorage.getItem('fired');

  if (eventsFired != '1'){
      doYourStuff();
      localStorage.setItem('fired', '1');
  }
}