我在非 IE 浏览器中遇到“输入标签”问题
<input type="file" ...
我正在尝试编写我的上传器,只使用 javascript 和 asp.net。
我上传文件没有问题。
当我想在非 IE 浏览器中获取我的文件时,我的问题发生了
<input type="file" ...
我不想直接使用 frominput
因为它的外观没有正确改变
我编写了这段代码来从硬盘获取文件:
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();
我认为“回调”或“等待功能”可以解决这个问题,但我无法处理。