我目前正在使用第三方软件表单系统,允许用户上传图像。onChange事件不触发
我想要实现的是上传区域的变化是抓住图像的exif并显示其信息的警报。 (该计划是抢纬度和经度,一旦我能做到这一点。)
我有我的文件准备
$.getScript('http://WIN-VEQPNOG6JPR/Forms/js/exif.js', function() {
document.getElementsByClassName("uploadArea").onchange = function(e) {
EXIF.getData(e.target.files[0], function() {
alert(EXIF.pretty(this));
});
}
});
所生成的形式结构看起来低于内部电流JS。我的第一个猜测是,我在表单创建者中定义的区域是错误的,或者我只是没有找到它。该文件是在tr类文件中,然后是另一个td,但我试图命名这整个部分的uploadArea。
时上传的图片看起来像"<a class="ellipsis" title="img_1771.jpg">img_1771.jpg</a>"
任何想法?
错误消息:
Uncaught TypeError: Cannot read property 'exifdata' of undefined
at imageHasData (exif.js?_=1496235241982:339)
at Function.EXIF.getData (exif.js?_=1496235241982:936)
at HTMLLIElement.document.getElementsByClassName.onchange (0:192)
尝试将'getElementsByClassName(“uploadArea”)。onchange ...'更改为'getElementsByClassName(“uploadArea”)[0] .onchange ...'因为'getElementsByClassName'返回数组。 – abhishekkannojia
@abhishekkannojia'getElementsByClassName'返回的NodeList不是数组 – NightKn8
@ NightKn8是的,你是对的,NodeList是一个类似于结构的数组。为了简单起见,我只写了数组。 – abhishekkannojia