javascript - ie6浏览器中执行setInterval的返回值
怪我咯
怪我咯 2017-04-10 12:46:51
[JavaScript讨论组]

通常情况下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。--个人猜测

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
阿神

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号