首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同的响应IE-8和FF getElementById()

不同的响应IE-8和FF getElementById()
EN

Stack Overflow用户
提问于 2010-01-21 17:50:33
回答 2查看 338关注 0票数 1

我有一个函数,它执行以下操作

代码语言:javascript
复制
function test() {
    document.getElementById("main").innerHTML="show wait";

    // do stuff

    document.getElementById("main").innerHTML="show finished";
}

在FF中,div会显示"show wait",做其他的事情4秒钟,然后显示“显示完成”。

在IE中,它将只显示“显示完成”。如果我在“做东西”之后或之前放了一个alert(),它会显示"show wait“。

我可以做什么来解决它,我知道我可以拆分函数,还有其他的解决方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-21 18:07:13

阅读Richard的解释,了解为什么它不起作用。至于解决方案,我有个简单的建议:

代码语言:javascript
复制
function test() {
    document.getElementById("main").innerHTML="show wait";

    setTimeout(function(){
        // do stuff

        document.getElementById("main").innerHTML="show finished";
    },1)
}

这样做的原因是,setTimeout计划稍后执行"do stuff“代码,从而允许浏览器退出脚本执行模式并进入DOM呈现模式,以便可以将"show wait"文本绘制到屏幕上。

票数 2
EN

Stack Overflow用户

发布于 2010-01-21 17:53:30

IE不会显示任何更新,直到您将控制线程返回给浏览器。调用alert就可以做到这一点(您的脚本等待用户操作)。

要么在拥有执行线程时不依赖于可见的UI更改,要么在(短暂地)返回执行线程后使用计时器继续执行脚本的第二部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2108207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档