【发布时间】:2013-03-27 00:23:12
【问题描述】:
我有这个 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 会记住第一次执行时所做的更改,即更改父页面上的那些元素。控制台:TypeError:$.cookie 不是函数 [Break On This Error] var eventsFired = ($.cookie('eventsFired') != null)
-
该错误消息是关键,绝对应该包含在您的问题中。好像您没有正确包含 cookie 库。
-
本地存储:if(eventsFired != '1')
-
cookie 库现在很好,没有控制台错误,但 cookie 仍然没有保存函数执行后的状态并在每次刷新时运行。
标签: javascript html cookies local-storage