У меня проблема с "тегом ввода" в браузерах без IE
<input type="file" ...
Я пытаюсь написать свой загрузчик, просто используя javascript и asp.net.
У меня нет проблем с загрузкой файлов.
Моя проблема возникла. Когда я хотел получить мои файлы в браузерах без IE с помощью
<input type="file" ...
Я не хочу использовать непосредственно из input
, потому что его внешний вид не изменяется правильно
Я написал этот код для получения файлов с жесткого диска:
function $tag(_str_tag) {
return document.getElementsByTagName(_str_tag);
}
function $create(_str_tag) {
return document.createElement(_str_tag);
}
function $open_file() {
_el_upload = $create("input");
_el_body = $tag("body")[0];
_el_upload.setAttribute("type", "file");
_el_upload.style.visibility = "hidden";
_el_upload.setAttribute("multiple", "multiple");
_el_upload.setAttribute("position", "absolute");
_el_body.appendChild(_el_upload);
_el_upload.click();
_el_body.removeChild(_el_upload);
return _el_upload.files;
}
В IE он работает очень хорошо и возвращает мои файлы в настоящее время; В Chrome и Firefox после загрузки "диалога ввода файлов" он не может вернуть какой-либо файл. И Opera и Safari полностью отключены.
Я могу исправить это с помощью этого трюка, но в целом это не хорошо.
_el_upload.click();
alert();
Я думаю, что "callback" или "wait function" может это исправить, но я не могу справиться с этим.