在IE8中setInterval方法不起作用

时间:2013-01-03 10:34:39

标签: internet-explorer-8 setinterval intervals

当我在IE8中尝试使用setInterval方法时,它没有意识到

<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>

当google我得到了几个答案时

window.setInterval jQuery function does not work on IE8 setinterval method not working

http://social.msdn.microsoft.com/Forums/nl-NL/netfxjscript/thread/ff7447f0-3c18-484b-a037-eaf9f60574a8 但是当我在ie8上尝试那些不起作用的东西时

1 个答案:

答案 0 :(得分:1)

setInterval在您的代码中正常运行。问题在于你正在做什么。执行document.writeln会清除您的文档,其中包括您的JavaScript。要查看此操作,只需在正文中的某处添加<p>foo</p>即可在document.writeln执行后看到它消失。移除document.writeln行,您会看到alert一遍又一遍地发生,正如预期的那样。

我相信JavaScript将继续在WebKit浏览器中运行,即使它已被删除,但不会在非WebKit浏览器中运行,如Internet Explorer,Firefox和Opera。看看this question有关如何做的一些想法。