2013-04-20 73 views
0

addEventListener改變事件對於輸入文件中選擇在IE 9和10中的文件選擇後應觸發,但它在第二時間爲文件選擇之後觸發,這意味着在第一次如果沒有文件被選擇,則對於第一選擇它不會觸發和後,對於每一個文件選擇收聽事件觸發器(如果不同的文件被選中)。我的代碼片段:聽在Internet Explorer

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瀏覽器有問題。

回答

3

舊版本的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) 
+0

得到it.Thanks這個標籤解決..但爲什麼IAM得到這麼晚回覆 – PRASANTH 2013-04-20 05:37:25

+0

@PRASANTH遲到回覆? – 2013-04-20 05:38:21

+0

手段第一個文件選擇更改事件功能不會執行,但之後,對於每一個文件選擇的事件觸發的原因是什麼。這是發生對我來說既IE 9和10 – PRASANTH 2013-04-20 05:41:25

1

您應該使用的attachEvent功能IE。

file.addEventListener ? file.addEventListener("change", handlefileselect, false) : file.attachEvent("onchange", handlefileselect); 
1

嘗試使用這個,我沒有檢查,但大多數的IE問題,用在標題部分

<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
+0

當然,我沒有意識到這一點。謝謝 .. – PRASANTH 2013-04-20 05:38:25