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 中出现问题。
最佳答案
老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)
关于javascript - 监听 Internet Explorer 中的更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116821/