我有一个看起来像的文件:
<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毫秒内推迟表单提交工作,但感觉很糟糕。
任何想法为什么它不会加载以及什么是覆盖它的正确方法?
答案 0 :(得分:2)
如果您想等到加载iframe,请使用:
<script>
$(function(){
$('iframe').on('load', function() {
$('form').submit();
});
});
</script>
或者,您可以异步发布表单,这样就不会阻止加载iframe,但是您需要在Javascript中处理服务器响应。为此,您可能会发现此主题非常有用:jQuery - Send a form asynchronously