2010-01-21 3 views
0

Обычно я открываю окно с javascript, чтобы показать информацию о ходе загрузки, , но это выглядит не очень хорошо, и многие пользователи используют всплывающие блокираторы.Force iframe load

Поэтому я думал, что могу показать эту информацию в 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 идентификатор, скажем iframe1, а затем запустить:

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

который является технически неправильным, но широко поддерживается, или:

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

, который является правильным, но не поддерживается IE.

+0

ОК, я получаю эту ошибку: FIREBUG WARNING: ReferenceError: Окно не определено – Poru

0

Я бы предположил, что это связано с тем, что после отправки формы текущая страница не загрузит ничего, поскольку она уже отправляет данные и загружает новую страницу, upload.php.

Возможно, использование файлового загрузчика AJAX было бы лучшей идеей? Here's one Я нашел через Google, что хорошо выглядит.

+0

Возможно, вы правы, но я уже использовал Ajax-Uploader, и он похож: Каждый Ajax-Request занимает больше 10 секунд, поэтому бесполезно, и я лучше управляюсь с iframe. – Poru

Смежные вопросы