2017-05-31 287 views
0

我目前正在使用第三方軟件表單系統,允許用戶上傳圖像。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) 
+4

嘗試將'getElementsByClassName(「uploadArea」)。onchange ...'更改爲'getElementsByClassName(「uploadArea」)[0] .onchange ...'因爲'getElementsByClassName'返回數組。 – abhishekkannojia

+0

@abhishekkannojia'getElementsByClassName'返回的NodeList不是數組 – NightKn8

+0

@ NightKn8是的,你是對的,NodeList是一個類似於結構的數組。爲了簡單起見,我只寫了數組。 – abhishekkannojia

回答

0

試試這個: document.getElementsByClassName("uploadArea")[0].onchange = function(e) {

或者 使用id作爲選擇。

+0

是的,這就是我認爲會是解決方案,不幸的是,我們現在得到一個Uncaught TypeError:無法讀取未定義的屬性'exifdata' – DevAL