Internet explorer 8 在IE8中,setInterval方法不起作用

Internet explorer 8 在IE8中,setInterval方法不起作用,internet-explorer-8,setinterval,intervals,Internet Explorer 8,Setinterval,Intervals,当我在IE8中尝试setInterval方法时,它不是wokring <body> <script type="text/javascript"> function msg() { alert("hello world "); document.writeln("hello world <br>"); } //setInterval("msg();", 3000);

当我在IE8中尝试setInterval方法时,它不是wokring

<body>
   <script type="text/javascript">
     function msg()
     {
       alert("hello world ");
       document.writeln("hello world <br>");       
     }
     //setInterval("msg();", 3000);
     //setInterval(msg(), 3000);
     //setInterval(msg, 3000);
     setInterval(function(){msg()}, 3000);
   </script>
</body>

函数msg()
{
警报(“你好世界”);
document.writeln(“你好,世界
”); } //setInterval(“msg();”,3000); //设置间隔(msg(),3000); //设置间隔(msg,3000); setInterval(函数(){msg()},3000);
当谷歌搜索时,我得到了几个答案


但是当我在ie8上尝试这些东西时,它不起作用

setInterval
在您的代码中运行良好。问题在于你在用它做什么。执行
document.writeln
将清除包含JavaScript的文档。要查看此操作,只需在正文中的某个位置添加
foo

,即可看到它在执行
document.writeln
后消失。删除
document.writeln
行,您将看到
警报像预期的那样反复出现


我相信JavaScript将继续在WebKit浏览器中运行,即使它已经被淘汰,但不会在Internet Explorer、Firefox和Opera等非WebKit浏览器中运行。看看关于如何做的一些想法。

——上面的代码在chrome和mz上运行良好,这是ie8唯一的问题。所有其他浏览器将在3秒钟后收到警报。但在ie8中,它只执行一次。关于writeln将在新行显示内容。()Chrome是一款WebKit浏览器,所以我并不感到惊讶,它的工作原理与你所期望的一样。然而,我只是在Firefox 17.0.1和Opera 12.11(都在Mac OS 10.7.5上)中测试了小提琴,在这两种浏览器中,它只显示了一次
警报。你读了吗?最后,我认为W3Schools不是一个好的资源。谷歌到处寻找原因。我建议你试试。