让我们说它是6月18日,一个人运行javascript并且它在加载时运行一个函数,但是即使该人在我的情况下关闭窗口或程序,它也不会在当天晚些时候运行该函数。 然而,在6月19日,如果该人打开程序并运行javascript,那么它运行该功能,因为它是新的一天,但还没有运行那天... 所以基本上,我如何使onload功能每天只工作一次? 它必须是javascript,因为我使用的程序只能通过javascript文件辅助,而不是其他任何东西。 此人必须将文件下载到他们的计算机上,那么我将如何保存和检索localStorage?
答案 0 :(得分:1)
您可以使用 localStorage 来实现此目的。示例代码:
/* returns null if local storage is not defined */
var localVal = localStorage.getItem('someUniqueName');
if(localVal == null){
// execute the function
}else{
var tempd = new Date();
var str = tempd.getDay() + tempd.getMonth() + tempd.getFullYear();
if(localVal.localeCompare(str) == -1){
//execute function
localStorage.setItem('someUniqueName',str);
}
}
如果您想创建一个cookie并进行处理,那么您可以查看question
答案 1 :(得分:0)
您可以在用户的浏览器上创建一个cookie,该cookie一直持续到一天结束。如果您使用的是jQuery,则可以执行以下操作(取自here):
var currentDate = new Date();
expirationDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()+1, 0, 0, 0);
$.cookie("ultOS", "5", {expires: expirationDate});
如果您使用普通的javascript,那么执行此操作的方法如下(来自here):
function createCookie(name,value,date) {
if (date) {
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
var today = Date();
var midnight = today.getDate()+1
midnight.setHours(0,0,0,0);
createCookie("Valid","true",midnight);
在每个页面加载开始时,只需检查此cookie的值。