在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>

我正在使用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>


摇曳的蔷薇
浏览 517回答 3
3回答

紫衣仙女

因为setTimeout()要求您的函数以字符串或匿名函数的形式传递:setTimeout(function() { document.getElementById("safeFormec").submit(); }, 100);

喵喔喔

试试这个setTimeout(function(){document.getElementById("safeForm9c").submit();}, 100);在过去,setTimeout完整功能是字符串格式,但是现在我们以这种方式使用它。同样,通过这种方式可以在超时完成后做更多的事情。

GCT1015

您是否尝试过从此行的末尾删除函数调用括号?document.getElementById("safeForm9c").submit()即这样做:setTimeout(document.getElementById("safeForm9c").submit, 100)您要告诉IE submit()在100毫秒内调用结果,而不是调用Submit。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript