javascript 延迟
(1) <script type="text/javascript"> function timedMsg(){ var t=setTimeout("",1000) } </script>
setTimeout(code,millisec);
code (必需):要调用的函数后要执行的 JavaScript 代码串。 millisec(必需):在执行代码前需等待的毫秒数。
(2)
setTimeout("函数名("+参数+")",毫秒数),这里的参数只能是字符串形式的,而不能传递一个对象
setTimeout(回调函数,时间,参数1,...,参数n)。 window.setTimeout(aaaaa,2000,1,6,7);
(3) <script type="text/javascript"> var _st = window.setTimeout; window.setTimeout = function(fRef, mDelay) { if(typeof fRef == 'function'){ var argu = Array.prototype.slice.call(arguments,2); var f = (function(){ fRef.apply(null, argu); }); return _st(f, mDelay); } return _st(fRef,mDelay); } function test(x){ alert(x); } window.setTimeout(test,1000,'fason'); </script> 此例中,重载了一下window.setTimeout,用apply去回调前面的function。
(5) 指定时间跳转到目标页面: setTimeout("location='index.asp'",2000); setTimeout调用无参数的函数时候不要写上括号否则页面一加载完就会直接执行函数,如 <script> setTimeout(test,3000); function test(){ alert("hello world"); } </script>
(6)
setTimeout调用有参数的可以有以下两种写法 1. <script> setTimeout(test,3000,'小庄'); function test(obj){ alert("hello,"+obj); } </script> 2. <script> setTimeout(function(){test('小庄')},3000); function test(obj){ alert("hello,"+obj); } </script>
<script language="javascript"> function test(obj) { alert(obj); setTimeout("test('"+ obj +"')",1000); } </script> <input id="testButton" type="button" onclick="test(this)"> 注意,setTimeout里的test中的参数obj前后的引号,在双引号内有一对单引号,这样:setTimeout("test(单引号双引号+obj+双引号单引号)"),行了吧~每隔1000毫秒屏幕显示一次[object],传递对象成功。 疑义:第4条 最终传走的是“对象”的字符串“object” 而不是初始的对象obj。只是obj的类型而已。并没有达到传递对象的作用。 可以测试一下代码: 弹出传来对象的id <body> <div id="sssss"></div> </body> <script language="javascript"> obj=document.getElementById('sssss'); function test(obj) { alert(obj.id); setTimeout("test('"+ obj +"')",1000); } test(obj) </script> 第一次弹出了ID 第2次开始未定义。对象传递不成功