以编程方式提交帖子表单时,浏览器会中止iframe的加载

时间:2013-10-15 02:14:23

标签: javascript html forms iframe browser

我有一个看起来像的文件:

<iframe source="http://example.com/" style="width:100%; height:100%"></iframe>
<form action="//example.com/foo" method="post">
  <input type="hidden" name="foo" value="bar">
</form>
<script>
$(function(){
  $('form').submit();
});
</script>

这个概念是在表单提交时显示iframe的内容,以及插页式步骤。

问题是,浏览器在提交表单时中止对iframe源的请求,因此即使表单提交需要一段时间,iframe也会保持空白。

我发现在50毫秒内推迟表单提交工作,但感觉很糟糕。

任何想法为什么它不会加载以及什么是覆盖它的正确方法?

1 个答案:

答案 0 :(得分:2)

如果您想等到加载iframe,请使用:

<script>
$(function(){
    $('iframe').on('load', function() {
        $('form').submit();
    });
});
</script>

或者,您可以异步发布表单,这样就不会阻止加载iframe,但是您需要在Javascript中处理服务器响应。为此,您可能会发现此主题非常有用:jQuery - Send a form asynchronously