ie6浏览器中执行setInterval的返回值

通常情况下seInterval 的返回值是其调用次数,1,2,3,4.。。。

但是ie6里面却返回的是一长串数字,非常大。什么原因?

我的问题没表述清楚,一个页面同时执行多个seInterval 的时候,通常情况下seInterval 的返回值是从1开始向上累加的,每一个特定的setlnterval返回的是一个定值,实际上是number类型的数字。还是贴代码吧 <script> var ss = setInterval(function(){ alert(ss) },600);

 var aa = setInterval(function(){
   alert(aa)
       },600);
</script>

正常的浏览器都弹,1.2.1.2这两个数字

又测了一下,ie8一下的浏览器 弹出的都是一长串数字,而且不同版本还不一样,比如ie8弹出的是172736541与172736542,但是ie6弹出的是130223503与130223502.

顺便说一下从中发现的ie6一个特别的地方
obj = document.getElementById('-....-')
obj.time=setInterval(function () {
-- 执行一系列动作--
if(--判断--){
clearInterval(obj.time);
delete obj.time;
}
},60)

这段代码在ie6下会报错,ie8以及其他chrome,firfox,opera正常。ie6报错的是 obj没有time 这个属性。貌似又说明了clearInterval在ie6下与其他浏览器下执行效果的差别.ie6是停止动画,并且删除这个动画返回的id。但是其他浏览器会保留这个返回的id。--个人猜测

阅读 5.6k
1 个回答

啊?setInterval 不一直是返回一个 id 的么?

看来你没明白,那我就再说清楚一点:setInterval 返回的是opaque value,也就是使用者不用管它里边是什么东西的值,它爱返回什么就返回什么,只要 clearInterval 能够正确使用就成。

至于你在 IE6 中没法给 HTMLElement 添加新属性,那是另一个问题了。

另,猜测无用,要么文档,要么自己证实。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题