【发布时间】:2013-03-25 08:25:31
【问题描述】:
我在非 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();
我认为“回调”或“等待函数”可以解决这个问题,但我无法处理。
【问题讨论】:
-
its appearance does not change correctly是什么意思,你想做什么? -
你需要使用
<input>元素的onchange事件。return _el_upload.files发生在您选择文件之前。 -
hi @RocketHazmat thx 回复:我正在尝试在我的 CMS 中制作我自己的 UI,但我对 的设计有疑问;我不想在名为“文件上传”的按钮附近看到一个文本框
-
我正在测试“onchange”
标签: javascript html