【发布时间】:2011-04-13 15:23:20
【问题描述】:
Firefox 总是加载动态图像,但 IE 只显示图像而没有任何动态动作。我需要做什么改变?
来自IE查看源代码的JavaScript代码:
<script type=”text/javascript”
<!--/*--><![CDATA[/*><!--*/
if (document.getElementById("safeForm1d3").submitted.value == "false") {
document.getElementById("safeForm1d3").submitted.value = "true";
setTimeout('document.getElementById("safeForm1d3").submit()', 100);
}else{
document.getElementById("toHide").style.display="none";
}/*-->]]>*/
</script>
我使用的是 Wicket 框架,所以真正的 java 代码是:
static private class SafeSubmitBehaviour extends AbstractBehavior{
public void onRendered( Component component ) {
super.onRendered( component );
StringBuffer buffer = new StringBuffer(200);
buffer.append("<script type=\"text/javascript\" ><!--/*--><![CDATA[/*><!--*/\n");
buffer.append("if (document.getElementById(\"").append(component.getMarkupId()).append("\").submitted.value == \"false\") {\n");
buffer.append("document.getElementById(\"").append(component.getMarkupId()).append("\").submitted.value = \"true\";\n");
buffer.append("setTimeout('document.getElementById(\"").append(component.getMarkupId()).append("\").submit()', 100);\n}else{\n");
buffer.append("document.getElementById(\"toHide\").style.display=\"none\";\n}/*-->]]>*/</script>");
component.getResponse().write(buffer);
}
}
加载我的动态图像的html页面是:
<div id="toHide" class="pb-text-align-center">
<img style="display: inline" src="img/load.gif" />
<form wicket:id="safeForm" class="clearfix">
<input type="hidden" wicket:id="submitted" value="false" />
</form>
</div>
【问题讨论】:
-
你知道,现代浏览器不需要所有的评论。
-
代码中的代码......我们将不得不更深入。
-
嗯...,100000 毫秒≠ 1 分钟,至少在我的时钟上没有。 ;-)
-
isIE() 有什么用?您对 true 和 false 执行相同的 setTimeout。
-
isIE 用于验证浏览器 Internet Explorer。因为我的问题是在 IE 中设置超时。它在 FF 中运行良好。
标签: javascript