<script type="text/javascript">
 function showWindow1(){
setTimeout(alert("hehe"),10000);
}
</script>
我写的这行代码,目的是为了当触发这个动作时,alert窗口能延时10秒才弹出,但是我运行时发现这并不是延迟10秒弹出,而是一触发就弹出了alert窗口,这是什么原因啊?该怎么改这个代码才能让alert窗口延迟10秒弹出啊?JavaScript函数

解决方案 »

  1.   

     function showWindow1(){
    setTimeout(function(){  alert("hehe")  } ,10000);}
      

  2.   


    <script type="text/javascript">
    setTimeout(function(){
    alert('hello world');
    },1200);
    </script>
      

  3.   

    或者<script type="text/javascript">
    function showWindow1(){
    this.tip=function(){alert("hehe");}
    setTimeout(tip,1200);
    }
    showWindow1();
    </script>
      

  4.   

    <script type="text/javascript">
     function showWindow1(){
    setTimeout("alert("hehe")",10000);
    }  //这样子写在IE6可以运行哦,没问题,但在IE9就不行了,这是什么原因呢?是不是浏览器的内核问题啊,还是语言的问题?
      

  5.   

     function showWindow1(){
    setTimeout("alert("hehe")",10000);
    }  //这样子写在IE6可以运行哦,没问题,但在IE9就不行了,这是什么原因呢?是不是浏览器的内核问题啊,还是语言的问题?
      

  6.   

    setTimeout("alert(‘hehe’)",10000);
      

  7.   

    6楼正解。 如果是这种写法,所有浏览器都应该支持。至于IE6这种奇葩的浏览器版本理论上浏览器都支持这两种写法:
    window.setTimeout(func, delay, [param1, param2, ...]);
    window.setTimeout(code, delay);但是基本都不推荐第二种用法,原因和eval()差不多吧,可以参考各个浏览器对于setTimeout的解释
    https://developer.mozilla.org/en-US/docs/Web/API/window.setTimeout
    http://msdn.microsoft.com/en-us/library/ie/aa741500%28v=vs.85%29.aspx因此,还是建议你采用2楼,3楼的建议吧。