模拟点击type为file时的onchange事件
我这边要实现一个一进页面就触发type为file的点击事件,然后获得选中的图片信息,我的代码是
var _file = document.createElement("input");
_file.setAttribute("type", "file");
_file.setAttribute("style", "display:none;");
_file.setAttribute("height", "0px");
_file.setAttribute("width", "0px");
_file.setAttribute("id", "_file-id");
document.body.appendChild(_file);
document.getElementById('_file-id').click();
document.getElementById('_file-id').onchange = function(e) {
alert(1)
}
这么写,怎么看都没错,可是在谷歌浏览器上直接不触发file的点击事件,在ie浏览器上,触发了点击事件,但是当我选中图片的时候,并没有执行onchange事件,求大神告知正确写法,可以兼容这两种浏览器,万分感谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试下trigger
处于安全考虑,这种功能一般都是不会被允许的,需要用户有交互产生后才行 这里的交互一般是指点击 或者 触摸屏幕。
建议更换方案。比如新建一个file框 设置定位到偏离画布或者设置opacity为透明 在页面使用覆盖层遮住页面 用户发生点击或者其他事件时来触发这个file框的点击事件。
测试结果:
个人观点:
关于兼容性,建议去找开源框架去做比较好,个人实现总是会有很多意想不到的问题。