在JavaScript中设置超时

bek*_*kur 3 javascript

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>
Run Code Online (Sandbox Code Playgroud)

我正在使用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);
    }  
  } 
Run Code Online (Sandbox Code Playgroud)

加载我的动态图像的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>
Run Code Online (Sandbox Code Playgroud)

Aro*_*eel 5

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

setTimeout(function() { document.getElementById("safeFormec").submit(); }, 100);
Run Code Online (Sandbox Code Playgroud)