function openwin()

var myDate=new Date();
var h=myDate.getHours();
var m=myDate.getMinutes();
var s=myDate.getSeconds();
var ms=myDate.getMilliseconds();
var z=h*60*60*1000+m*60*1000+s*1000+ms;
var hd=9;
var md=28;
var sd=0;
var msd=0;
var zd=hd*60*60*1000+md*60*1000+sd*1000+msd;
var zdc=zd-z;
if(zdc>=0)
{
setTimeout(open,zdc);
}
}
function open()
{
window.open('testopen.html');
}
-->
</script> 
<body onload="openwin()">
</body>
运行后显示“stack overflow at line:0” 堆栈溢出。我想实现在固定的时间弹出网页,不知用JS定时器如何实现?

解决方案 »

  1.   

    function open()
    {
        window.open('testopen.html');
    }
    把红色的字改名
    setTimeout(open,zdc);
    这换成改后的名字
      

  2.   

    首先,楼主出现的错误因为是你的open函数名和系统的冲突了,请改下,如open1
      

  3.   

    改后如下,不过楼主的时间计算的有问题<script>
    var c;
    function openwin()

    var myDate=new Date();
    var h=myDate.getHours();
    var m=myDate.getMinutes();
    var s=myDate.getSeconds();
    var ms=myDate.getMilliseconds();
    var z=h*60*60*1000+m*60*1000+s*1000+ms;
    var hd=9;
    var md=28;
    var sd=0;
    var msd=0;
    var zd=hd*60*60*1000+md*60*1000+sd*1000+msd;
    var zdc=zd-z;
    if(zdc>=0)
    {
    c = setTimeout("openwin", zdc);
    }else{
    open1();
    clearTimeout(c);
    }
    }
    function open1()
    {
        window.open('testopen.html');
    }
    </script> 
    <body onload="openwin()">
    </body>