我要做一个限时的倒计时,防刷新重新计时的,网上找了一个不错的,在本地运行很好,可是传到服务器上就运行不好,好像是window.name 不起作用。什么原因如果解决呢?还是哪位有更好的代码?帮解决一下,先谢谢了。

解决方案 »

  1.   

    var normalelapse = 100;
    var nextelapse;
    var counter = 0;
    var timer = null;
    var finish = "00:00:00";
    var startTime;
    var start;function run(secondTime){
        initFloatTips();
        var hour = Math.floor(secondTime / 3600);
        var minute = Math.floor((secondTime-hour*3600) / 60);
        var second = Math.floor(secondTime % 60) - 1;
        clock.innerHTML = hour + ':' + minute + ':' + second;
        startTime = new Date().valueOf();
        timer = window.setInterval("onTimer()", nextelapse);
    }function onTimer(){
        if (nextelapse = '') {
            nextelapse = normalelapse;
        }
        if (start == finish) {
            window.clearInterval(timer);
            alert('定时完毕!');
            return;
        }
        var hms = new String(clock.innerText).split(":");
        var s = new Number(hms[2]);
        var m = new Number(hms[1]);
        var h = new Number(hms[0]);
        s -= 1;
        if (s < 0) {
            s = 59;
            m -= 1;
        }
        if (m < 0) {
            m = 59;
            h -= 1;
        }
        var ss = s < 10 ? ("0" + s) : s;
        var sm = m < 10 ? ("0" + m) : m;
        var sh = h < 10 ? ("0" + h) : h;
        start = sh + ":" + sm + ":" + ss;
        clock.innerText = start;
        window.clearInterval(timer);
        counter++;
        var counterSecs = counter * 1000;
        var elapseSecs = new Date().valueOf() - startTime;
        var diffSecs = counterSecs - elapseSecs;
        nextelapse = normalelapse + diffSecs;
        if (nextelapse < 0) 
            nextelapse = 0;
        timer = window.setInterval("onTimer()", nextelapse);
    }看看适合你不
      

  2.   

    我也有一个你看合适吗?<script>
    var viewhour=-1,viewminutes=-1,viewsecond=-1;
    var futertime=new Date("Janu 1,2012 23:59:59");
    var daysem=24*60*60*1000;
    var hoursem=60*60*1000;
    var secdsem=60*1000;
    var microsecdsem=1000;
    function clock()
    {
     var nowtime=new Date();
    var diffsem=futertime.getTime()-nowtime.getTime();
    var convertHour=viewhour;
    var convertMinutes=viewminutes;
    var convertSecond=viewsecond;
    var viewhour=Math.floor(diffsem/daysem);
    diffsem-=viewhour*daysem;
    var viewminutes=Math.floor(diffsem/hoursem);
    diffsem-=viewminutes*hoursem;
    var viewsecond=Math.floor(diffsem/secdsem);
    diffsem-=viewsecond*secdsem;
    var dSecs=Math.floor(diffsem/microsecdsem);
    if(convertHour!=viewhour)
    {
    document.myform.dd.value=viewhour;
    }
    if(convertMinutes!=viewminutes)
    {
    document.myform.hh.value=viewminutes;
    }
    if(convertSecond!=viewsecond)
    {
    document.myform.mm.value=viewsecond;
    }
    document.myform.ss.value=dSecs;
    setTimeout("clock()",1000)
    }</script>