2010-01-21 129 views
0

通常情況下,我打開一個JavaScript窗口來顯示有關上傳進度的信息, 但它看起來不太好,許多用戶使用彈出窗口攔截器。強制iframe加載

所以我想我可以在iframe中顯示這些信息, 但在上傳過程中iframe不加載。

但是,如果我打開iframe上載過程中在新窗口/選項卡中加載。

我怎麼能強制iframe應該加載?

HTML:

<script type="text/javascript"> 
function test() { 
    document.getElementById('iframe').innerHTML = '<iframe src="./stats.php?id=123456"></iframe>'; 
} 
</script> 

<form action="upload.php" enctype="multipart/form-data" method="post"> 
    <input id="upload" name="upload" size="30" type="file"> 
    <input type="submit" value="Upload File" onclick="test();"> 
</form> 

<div id="iframe"></div> 

回答

0

首先,給iFrame的一個id,說iframe1,然後運行:

document.getElementById('iframe1').contentWindow.location.reload(); 

這在技術上是不正確,但被廣泛支持,或:

document.getElementById('iframe1').contentDocument.defaultView.location.reload(); 

這是正確的,但IE不支持。

+0

好的,我得到這個錯誤:FIREBUG WARNING:ReferenceError:Window is not defined – Poru 2010-01-21 18:15:38

0

我猜測這是因爲一旦表單被髮布,當前頁面將不會加載任何其他內容,因爲它已經發送數據並加載新頁面upload.php

也許使用AJAX文件上傳將是一個更好的主意? Here's one我通過Google找到了,看起來不錯。

+0

您可能是對的,但我已經使用了Ajax-Uploader,它類似於: 每個Ajax-Request需要超過10秒鐘,沒用,我用iframe開得更好。 – Poru 2010-01-21 17:59:27