首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有ie6的javascript问题

带有ie6的javascript问题
EN

Stack Overflow用户
提问于 2011-06-21 15:46:33
回答 2查看 69关注 0票数 0

我有一个带有onclick事件的输入按钮:

代码语言:javascript
复制
<input id="bSave" type="button" name="bSave" value=Save 
          onclick="save();window.close();">

下面是save函数

代码语言:javascript
复制
function save(){
              //do some calculation
    calculate();
    //submit a form in this popup window
    document.RCSARiskAssessDimenResultForm.submit();
              //call parent opener to submit another form in parent window
    window.opener.document.RiskControlAssessmentDetailForm.bSave.onclick();
}

在我的装有win7/ie8的PC上,提交请求已经发送并完成,没有任何问题。但是在使用xp/ie6的客户端环境中,有时(并不总是)第一个提交就不会被发送。似乎调用了window.close()或其他未知原因(网络延迟?)。

任何类型的建议(信息)都将是感恩的。

EN

回答 2

Stack Overflow用户

发布于 2011-06-21 16:29:52

当你确定你的提交已经完成时,你应该放入你的window.close()。通常以回调的形式出现。这样你就可以控制发生的事情了。

Javascript只有一个线程,它看起来像是顺序的,但它不是。如果您的提交具有对服务器的调用,或者使用setTimeoutsetInterval,则开始执行一些异步操作,并调用下一条JS语句。

可能是因为IE6有一个更脆弱的实现,它需要更多的时间来做一些事情,并揭示出一个问题,对于其他连接速度很慢的浏览器,你也可能会遇到这个问题。

票数 2
EN

Stack Overflow用户

发布于 2011-06-21 16:28:45

为此,您必须使用回调函数。

请参见以下示例。

代码语言:javascript
复制
function celebrate(){
    //your celebrate code here
}


function run(){
    //your run code here
}

function compete(){
    run();
    celebrate();
}

在上面的例子中,您有时会看到,由于javascript运行时的性质,庆祝将在run函数之前或之后调用。

边跑边庆祝是失败的。

代码语言:javascript
复制
function run(callbackFunction){
    //your run code here

    //execute the callback
    callbackFunction();
}

function celebrate(){
    //your celebrate code here
}

function compete(){
    run(function(){celebrate();});
}

这可以确保你在跑步时不会庆祝。

干杯。

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

https://stackoverflow.com/questions/6421983

复制
相关文章

相似问题

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