На родительской странице моего сайта я использую iframe (с кнопкой display: none submit), содержащую форму загрузки файла для позволяют пользователям загружать изображения профиля без перезагрузки родительской страницы. Метод работает в Chrome и FF с любой из следующих функций («NoReloadiframe» - это идентификатор iframe, а «iframePicButton» - это идентификатор дисплея: ни одна кнопка отправки в форме загрузки изображения скрытого iframe):Использование кнопки click() в скрытой кнопке отправки внутри iframe работает в FF и Chrome, но не в IE и Opera
function HiddenPicButton() {
document.getElementById('NoReloadiframe').contentWindow.document.getElementById('iframePicButton').click();
}
function HiddenPicButton() {
window.frames['NoReloadiframe'].contentWindow.document.getElementById('iframePicButton').click();
}
и вот код формы внутри фрейма:
<form action="#" enctype="multipart/form-data" method="post" id="HiddenUserPicForm">
<button type="submit" name="iframepicbutton" id="iframePicButton" style="display:none">
</button>
<input type="file" name="ifrpic" id="ifrfile">
</form>
вкратце, нажав на кнопку загрузки файлов на родительской странице вызывает HiddenPicButton(), который нажимает на скрытую кнопку внутри фрейма а загрузка файлов без перезагрузки родительской страницы.
Однако скрытая нажатие кнопки не происходит ни в Opera, ни в IE (хром и FF работают точно так, как предполагалось). Любые указатели на то, как исправить это? В качестве резервной копии я вернусь обратно к методу перезагрузки страницы, поскольку я изначально имел или пытаюсь использовать Javascript для обнаружения браузера (с использованием метода, показанного здесь: Browser detection in JavaScript?) пользователь просматривает и скрывает кнопку отправки iframe для IE и Opera используя функцию onLoad.
Почему не только называют 'представить()' на форме? – Ryan
Попробуем это ... спасибо за предложение –