我誤以爲我不能同時擁有一個正在運行的腳本更新屏幕,還有一個未完成的提交會在完成時重新加載頁面。
你可以做到這一點,我有。我這樣做的方式是將我的更新程序放在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加載完成後,它會調用(main)頁面中的函數。如果一切看起來都不錯,我想將加載到iframe中的body的內容移動到主頁的body中,否則我會把事情放在一邊。我有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>
你爲什麼不使用AJAX加載內容?它是異步的,因此當數據發回時,它會觸發回調。它確實不會保留任何綁定,你必須重新調用它們。 – 2012-08-05 06:24:44
Ajax是一個更好的選擇,除非你有要在IE6中工作的文件輸入。 – 2012-08-05 06:34:08
「它確實不會保留任何綁定,您必須重新調用它們......」除非事件處理首先被委託給'document'。 – 2012-08-05 06:52:04