IE8 setTimeout具有匿名功能

时间:2012-02-27 21:40:49

标签: javascript forms internet-explorer settimeout

我有一个ajax代码,根据收到的百分比改变div的宽度,然后再次循环该函数。我现在设置它的方式现在可以在谷歌浏览器和FF中完美运行但在IE8中(只有IE我已经测试过它)它冻结了

以下是调试器的屏幕截图。它显示了它当前处理的位置,它永远不会离开那个地方。我将超时更改为1000,1没有区别。

2 个答案:

答案 0 :(得分:1)

onSubmit是一个事件处理程序,你只是将该函数延迟了1毫秒,我的猜测就是Chrome& FF正在忽略这个代码,IE正在失败,因为IE是愚蠢的。

编辑哦,是的,IE不会像其他人一样冒泡,因为IE是愚蠢的。

OP的完整代码

EDIT2 http://pastebin.com/t8vdK8B2

显然onSubmit是此代码中函数的名称,它也是一个事件处理程序。由于函数不是多态的,因此应该覆盖,但由于它是一个事件处理程序,我不确定。

编辑3

好的,所以这个onSubmit函数应该可以工作并保留事件处理程序,但是我建议更改这个函数名,看起来你正在做的是尝试将变量传递给{中的函数{1}}你可以这样做:

setTimeout

答案 1 :(得分:0)

onSubmit事件在IE中没有冒泡,因此您需要直接将on submit事件添加到表单中。 E.g:

setTimeout(function(){document.getElementById("formToSubmit").onSubmit(upload_id); }, 1);

Here are details浏览器支持提交事件。