javascript - 限制计时器重置 JavaScript

标签 javascript jquery timer

有人可以帮助这段代码,使计时器不再重置吗?

这是我的代码:

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/

相关文章:

javascript - 有没有办法检索从 iframe 发送的 ajax 响应?

javascript - 如果更新了重复项之一,如何更新对象数组中其他重复对象的值

javascript - 翻转图像

javascript - 尝试使用 jQuery 设置 asp 单选按钮列表的值

c# - C#多线程的速度测试

javascript - 按分数排序具有层次结构的数组,可能使用 lodash。 ( Node )

javascript - 通过覆盖转发和嗅探事件

javascript - jQuery 如何隐藏表中包含 td 的所有跨度

windows - 如何将 QueryPerformanceCounter 转换为 Unix 纳秒(纪元)

c# - BackGround Thread with timer for application level-WPF Application