有人可以帮助这段代码,使计时器不再重置吗?
这是我的代码:
var mins
var secs;
function cd() {
mins = 1 * m("02"); // change minutes here
secs = 0 + s(":01"); // change seconds here (always add an additional second to your total)
redo();
}
function m(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(0, i));
}
function s(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(i + 1, obj.length));
}
function dis(mins,secs) {
var disp;
if(mins <= 9) {
disp = " 0";
} else {
disp = " ";
}
disp += mins + ":";
if(secs <= 9) {
disp += "0" + secs;
} else {
disp += secs;
}
return(disp);
}
function redo() {
secs--;
if(secs == -1) {
secs = 59;
mins--;
}
document.cd.disp.value = dis(mins,secs); // setup additional displays here.
document.getElementById('waktu_val').innerHTML = dis(mins,secs);
if((mins == 0) && (secs == 0)) {
//window.alert("Time is up. Press OK to continue.");// change timeout message as required
window.document.form_verbal.submit();
//window.location = "http://localhost/tesasisten/Soal/exec_jkl.php" // redirects to specified page once timer ends and ok button is pressed
} else {
cd = setTimeout("redo()",1000);
}
}
function init() {
cd();
}
window.onload = init;
我正在使用它进行招聘测试,但是由于刷新页面时发现了这个错误,所以计时器回到了 2 分钟,需要修复。我认为代码本身没有保存给出的问题的多个选择。
就是这样,如有任何帮助,我们将不胜感激。
最佳答案
var mins
var secs;
var minutes=sessionStorage.mins || "02";
var seconds=sessionStorage.secs || ":01";
function cd() {
mins = 1 * m(minutes); // change minutes here
secs = 0 + s(seconds); // change seconds here (always add an additional second to your total)
redo();
}
function m(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(0, i));
}
function s(obj) {
for(var i = 0; i < obj.length; i++) {
if(obj.substring(i, i + 1) == ":")
break;
}
return(obj.substring(i + 1, obj.length));
}
function dis(mins,secs) {
var disp;
if(mins <= 9) {
disp = " 0";
} else {
disp = " ";
}
disp += mins + ":";
if(secs <= 9) {
disp += "0" + secs;
} else {
disp += secs;
}
return(disp);
}
function redo() {
secs--;
if(secs == -1) {
secs = 59;
mins--;
}
document.cd.disp.value = dis(mins,secs); // setup additional displays here.
document.getElementById('waktu_val').innerHTML = dis(mins,secs);
sessionStorage.mins=mins;
sessionStorage.secs=secs;
if((mins == 0) && (secs == 0)) {
//window.alert("Time is up. Press OK to continue.");// change timeout message as required
window.document.form_verbal.submit();
//window.location = "http://localhost/tesasisten/Soal/exec_jkl.php" // redirects to specified page once timer ends and ok button is pressed
} else {
cd = setTimeout("redo()",1000);
}
}
function init() {
cd();
}
window.onload = init;
<!-- end snippet -->
关于javascript - 限制计时器重置 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44280795/