Я работаю с AJAX-загрузками.Поскольку IE не имеет требуемого объекта, мне придется обойти iframes.
Теоретически все довольно просто:
- Создание формы и iframe
- Изменение цели формы и атрибута имени iframe
- При изменении поля входного файла форма будет отправлена
Кроме того, поскольку поле входного файла отстой, онобыло бы неплохо иметь кнопку «Загрузить», которая запускает событие click скрытого поля входного файла, чтобы открыть диалоговое окно выбора файла.
Да, это была теория.На самом деле все намного хуже.Во-первых, IE8 почему-то не нравится клонированные iframes, поэтому мы должны добавлять каждый из них на ходу.Затем поле ввода файла очищается при попытке отправки.
Я выяснил, что происходит и когда, и это довольно уродливо.
Отправляйтесь на этот пример и этоработает довольно хорошо.Форма клонируется, поле файла содержит данные, и форма отправляется.Однако входной файл не имеет атрибута name, и я не могу получить к нему доступ на стороне сервера.
Поэтому я добавил атрибут , вот пример , и вот что происходит: поле fileочищено.Просто потому, что атрибут name.
Это может быть глупый вопрос, но есть ли обходной путь с этим?Мне хорошо известно, что если поле ввода файла будет выбрано, оно может вызвать автоматическую загрузку, но мне интересно, могу ли я это сделать, не требуя фактического щелчка по полю файла, как в любом нормальном браузере.
Спасибо.