javascript - 监听 Internet Explorer 中的更改事件

标签 javascript html internet-explorer

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/

相关文章:

javascript - 如何将日期格式转换为不同的格式

javascript - 在嵌套数组内添加值并保留索引位置

javascript - Bootstrap Modal 未显示且 jQuery 脚本未执行

css - Chrome/IE CSS 不兼容

internet-explorer - 有没有办法从 Internet Explorer 获取像素数据?

javascript - 更改 leaflet markercluster 图标颜色,继承其余默认 CSS 属性

Javascript正则表达式匹配数字零或任何大于零的整数

html - css 菜单第二行缩进不影响背景悬停颜色缩进

javascript - 如何显示图片推送器实时聊天

JavaScript:IE 11 和 MS Edge 覆盖 CTRL+P