更新:
我被误导了,我犯了一些错误,以为我不能同时拥有一个正在运行的脚本来更新屏幕和一个未完成的提交,它会在完成后重新加载页面。
你可以做到这一点,我做到了。我这样做的方式是将我的更新程序放在 startTimeout 上并让提交继续。
$('#JQF').on('submit', function(){
start();
return true;
});
...
start:
function (xhr, s) {
$(".appMainMsg").hide();
bar = document.getElementById("ProgressBar");
if (bar)
{
eta = document.getElementById("ProgressBarEta");
startTime = new Date();
infoUpdated = 0;
infoRequested = 0;
$(bar).empty().progressbar();
setTimeout(requestInfo, 2);
}
},
...
原始问题:
我有一个页面发布带有文件上传的表单并将响应定位到隐藏的 iframe。当 iframe 完成加载时,它会调用(主)页面中的一个函数。如果一切看起来都不错,我想将加载到 iframe 中的正文内容移动到主页的正文中,否则我就不管了。我确实加载了 jquery,所以我想使用它。
<body>
<iframe name='ifr' id='ifr' style='display: none;'></iframe>
<form target='ifr' method='post' action='mypage.php'>
</form>
<script>
function finished()
{ if (iLikeIt)
{
//replace body contents with ifr.body.contents
// keeping all event handlers attached
// something like...
WHAT DO I PUT HERE?
}
}
</script>
</body>
加载到 iframe 中的页面以以下结尾:
<script>
setTimeout(parent.finished, 1000); // some time for navel gazing
</script>