<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>浏览器对象</title> </head> <body> <h3>操作成功</h3> <b id="second">5</b>秒后回到主页面 <a href="javasript:goback();">返回</a> <script type="text/javascript"> var i = 5; var sec = document.getElementById("second"); function sec(){ i--; sec.innerHTML=i; if(i==1){ location.href="http://www.baidu.com"; } setTimeout("sec()",1000); } sec(); function goback(){ window.history.back(); } </script> </body> </html>
当把var sec 定义在sec()函数外面时,执行出错
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>浏览器对象</title> </head> <body> <h3>操作成功</h3> <b id="second">5</b>秒后回到主页面 <a href="javasript:goback();">返回</a> <script type="text/javascript"> var i = 5; function sec(){ var sec = document.getElementById("second"); i--; sec.innerHTML=i; if(i==1){ location.href="http://www.baidu.com"; } setTimeout("sec()",1000); } sec(); function goback(){ window.history.back(); } </script> </body> </html>
而定义在sec()里面就没有问题了。。。有点想不明白是什么原因
还有,我发现如果网速比较慢的话,秒数会一直读到负数直到打开网页,不知道有没有什么 解决办法。
用firefox浏览器,点击返回总是提示:Firefox 不知道如何打开这个地址,因为协议 (javasript) 未与任何程序关联,或者不允许在这种情况下进行。这是什么原因呢?
请教大家!谢谢!
命名冲突了,sec在sec函数里的话会占时把函数覆盖掉,也就是说在sec函数里面sec不再表示函数而是变量,但如果在外面,电脑就不能判断sec指的是函数还是变量了