addEventListener
用于IE 9和10中的输入文件选择应该在文件选择后触发,但是在第二次文件选择后触发,这意味着如果没有选择文件则首次选择它不会触发,在此之后,每个文件选择都会触发侦听器事件(如果选择了不同的文件)。我的代码片段:
HTML
<input type="file" name="imagefile" id="upload">
的JavaScript
var file = document.getElementById("upload");
file.addEventListener("change", handlefileselect, false);
function handlefileselect(event) {
alert("file selected");
}
代码在Firefox和Chrome中运行正常,但IE存在问题。
答案 0 :(得分:4)
旧的IE版本不支持.addEventListener()方法,而是使用.attachEvent()方法向元素添加事件。
使用以下addEvent method
function addEvent(evnt, elem, func) {
if (elem.addEventListener) // W3C DOM
elem.addEventListener(evnt,func,false);
else if (elem.attachEvent) { // IE DOM
elem.attachEvent("on"+evnt, func);
}
else { // No much to do
elem[evnt] = func;
}
}
var file = document.getElementById("upload");
addEvent('change', file, handlefileselect)
答案 1 :(得分:3)
你应该为IE使用attachEvent函数。
file.addEventListener ? file.addEventListener("change", handlefileselect, false) : file.attachEvent("onchange", handlefileselect);
答案 2 :(得分:1)
尝试使用此功能,我没有检查,但大多数IE问题都是通过标题部分中的此标记解决的
<meta http-equiv="X-UA-Compatible" content="IE=edge">