为了账号安全,请及时绑定邮箱和手机立即绑定

在JavaScript中设置超时

在JavaScript中设置超时

摇曳的蔷薇 2019-12-06 12:51:23
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>
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

因为setTimeout()要求您的函数以字符串或匿名函数的形式传递:


setTimeout(function() { document.getElementById("safeFormec").submit(); }, 100);


查看完整回答
反对 回复 2019-12-06
?
喵喔喔

TA贡献1735条经验 获得超5个赞

试试这个


setTimeout(function(){document.getElementById("safeForm9c").submit();}, 100);

在过去,setTimeout完整功能是字符串格式,但是现在我们以这种方式使用它。同样,通过这种方式可以在超时完成后做更多的事情。


查看完整回答
反对 回复 2019-12-06
?
GCT1015

TA贡献1827条经验 获得超4个赞

您是否尝试过从此行的末尾删除函数调用括号?


document.getElementById("safeForm9c").submit()

即这样做:


setTimeout(document.getElementById("safeForm9c").submit, 100)

您要告诉IE submit()在100毫秒内调用结果,而不是调用Submit。


查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 514 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信