私は現在、ユーザーが画像をアップロードできるサードパーティのソフトウェアフォームシステム内で作業しています。onChangeイベントがトリガーされない
私が達成しようとしているのは、アップロード領域の変更がイメージのexifを取得し、その情報のアラートを表示することです。 (計画は、私はそれを行うことができたら、緯度とLNGをつかむためにあることを。)
私は
$.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'は配列を返すので、' getElementsByClassName( "uploadArea").onchange ... 'を' getElementsByClassName( "uploadArea")[0] .onchange ... 'に変更してみてください。 – abhishekkannojia
@abhishekkannojia 'getElementsByClassName'は配列ではなくNodeListを返します – NightKn8
@ NightKn8うん、そうです、NodeListは構造体のような配列です。簡単にするために、私は配列を書きました。 – abhishekkannojia