通常情况下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。--个人猜测
啊?setInterval
不一直是返回一个 id 的么?
看来你没明白,那我就再说清楚一点:setInterval
返回的是opaque value,也就是使用者不用管它里边是什么东西的值,它爱返回什么就返回什么,只要 clearInterval
能够正确使用就成。
至于你在 IE6 中没法给 HTMLElement 添加新属性,那是另一个问题了。
另,猜测无用,要么文档,要么自己证实。