<script type="text/javascript">
    var a;
    var timeLeft;
    function countTime0() {
        a = 10;
        timeLeft = a * 60 * 1000;
        countTime();
    }
    function countTime1() {
        a = 10;
        timeLeft = a * 60 * 1000;    }    function countTime() {        if (timeLeft == 0) {            closeme();            return;
        }        var startMinutes = parseInt(timeLeft / (60 * 1000), 10);
        var startSec = parseInt((timeLeft - startMinutes * 60 * 1000) / 1000)
        timeLeft = timeLeft - 1000;
        setTimeout('countTime()', 1000);        show_time.innerHTML = startMinutes + "分钟" + startSec + "秒";    }    function dd() {
        var inputs = document.getElementsByTagName("input");
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].setAttribute("readOnly", true);
        }
    }
</script>
<script type="text/javascript">
    function closeme() {
        var browserName = navigator.appName;
        if (browserName == "Netscape") {
            window.open('', '_parent', '');
            window.close();
        } else if (browserName == "Microsoft Internet Explorer") {
            window.opener = "whocares";
            window.close();
        }
    }
</script>
<script type="text/javascript">
    window.attachEvent('onbeforeunload',
    function() {
        window.onbeforeunload = null;
        document.getElementById("Btn_JiaoJuan").click();
        alert("题库学习退出!");
    });
    //window.onunload = function ()
    //{
    //    window.onbeforeunload = null;
    //document.getElementById("Btn_JiaoJuan").click();    //    
    //}
    function move() {        countTime1();
    }
</script><body onload="countTime0();" onMouseMove="move()" onmousedown="move()" onkeydown="move()" onclick="move()" >本人这段代码在客户端页面打开后,会自动启动计时,如果在10分钟内没有任何动作,则退出当前页面。
可最近发现很多长达几十个小时的学习记录,后来自己发现原来是只要把键盘某个键卡住,我那个倒计时就失效了。有没有别的方法,如定时让学员回答问题。望提供些参考脚本

解决方案 »

  1.   

    你这种js的倒计时太天真了,哪里需要卡键这么复杂
    客户端是可以注入js代码的,地址栏注入或控制台都可以,
    甚至整个文档也是可以被篡改的,当然你这个不用篡改文档这么复杂
    都是写全局函数,直接把函数覆盖掉就行了
    比如在地址栏输入:
    javascript:closeme=function(){};void(0);
    回车,马上你的代码就失效了
    更简便的方法让浏览器禁用javascript脚本,这个方法一个不懂js的人都能搞定
      

  2.   

    服务器端怎么排除那种人离开了,计时没停止问题?
    ajax?
      

  3.   

    服务器端怎么排除那种人离开了
    re:
    没有会员功能吗?计时没停止问题?
    re:
    判断上一次操作与本次操作的间隔
      

  4.   

    看来这个客户端计时方案是不可行了,只能用ajax方式,定时与服务器端联系。