我目前正在创建一个考试门户网站,要求在所有页面导航中使用一致的计时器,并在时间用尽后重定向到提交。
我目前正在使用原生javascript来执行时间并显示在
下面// JavaScript文档
var count = remsecs;
var count2 = remmin;
var count3 = remhrs;
var counter = setInterval(timer, 1000); //1000 will run every 1 second
function timer(){
count = count - 1;
if (count3 > 0){
if (count2 == 0){
count3 = count3 - 1;
count2 = 59;
count = 59;
timer();
//clearInterval(counter); //counter ended, do something here
//count = count - 1;
}
}
if (count == 0){
count2 = count2 - 1;
count = 60;
timer();
//clearInterval(counter); //counter ended, do something here
//count = count - 1;
}
document.getElementById("timerhr").innerHTML = '<strong>' + count3 + "</strong>";
document.getElementById("timermin").innerHTML = '<strong>' + count2 + "</strong>";
document.getElementById("timersecs").innerHTML = '<strong>' + count + "</strong>";
var myhrs = document.getElementById("hrs").value = count3;
var mymin = document.getElementById("mins").value = count2;
var mysec = document.getElementById("secs").value = count;
//document.write(count + "<br />" + count2);
if (mymin <= 3 && mymin > -1 && myhrs == 0){
document.getElementById("timerhr").innerHTML = '<font size="+2" color="red"><strong><blink>' + count3 + "</blink></strong></font>";
document.getElementById("timermin").innerHTML = '<font size="+2" color="red"><strong><blink>' + count2 + "</blink></strong></font>";
document.getElementById("timersecs").innerHTML = '<font size="+2" color="red"><strong><blink>' + count + "</blink></strong></font>";
}
if (mymin == 0 && mysec <= 02 && myhrs == 0){
window.location = "printresult.php";
}
}
实际上,我试图避免每次按下页面上的任何按钮将数据库div的内容存储到数据库中。
是否有一种简单的方法可以将此计时器存储到浏览器中,并在每次页面重新加载时从中选择它?
谢谢
答案 0 :(得分:0)
您是否查找了可能的浏览器storage options?缺点是它们仅受支持HTML5的浏览器的支持。
每次离开页面时都保存count
变量。
根据您的情况,您可以使用sessionStorage
。您必须像这样更改代码
...
var count = remsecs;
// checks if sessionStorage has an existing examtimer property
if(sessionStorage.hasOwnProperty('examtimer')) {
// sessionStorage only stores string to parseInt
count = parseInt(sessionStorage.examtimer);
}
...
// executes before tab is navigated away or close
window.onbeforeunload = function(){
// saves count into sessionStorage with the key of examtimer
sessionStorage.setItem("examtimer", count);
}
答案 1 :(得分:0)
@Simplex Marketplace 如果您需要查看的是超时: 我非常确定你根本不需要时间计数器。
在此会话中使用窗口属性&#34;名称&#34; 进行存储。
P.S:
window.name 属性可以处理最多或超过2.0MB的数据。