2013-04-20 1 views
0

addEventListener 입력 파일을 IE 9 및 10에서 선택하십시오. 파일 선택 후에 트리거해야하지만 파일 선택을 위해 두 번째 시간 이후에 트리거됩니다. 이는 파일이 선택되지 않은 경우 처음 의미합니다. 먼저 트리거를 선택하지 않으면 모든 파일 선택에 대해 리스너 이벤트가 트리거됩니다 (다른 파일이 선택된 경우). 내 코드 :Internet Explorer에서 이벤트를 변경하려면 수신 대기

HTML

<input type="file" name="imagefile" id="upload"> 

자바 스크립트

var file = document.getElementById("upload"); 
file.addEventListener("change", handlefileselect, false); 

function handlefileselect(event) { 
    alert("file selected"); 
} 

코드는 파이어 폭스와 크롬에서 잘 실행하지만, 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

들었어요 고마워요에서이 태그로 해결하고,이를 사용하지만 왜 스피이 말을 얻기에 응답 – PRASANTH

+0

@PRASANTH 늦게 respone? –

+0

첫 번째 파일 선택을 의미하는 변경 이벤트 함수는 실행되지 않지만 이후 모든 파일 선택에 대해 이벤트가 원인을 트리거합니다. 그것은 9와 10 둘 다 나를 위해 일어나고 있습니다. – PRASANTH

1

당신은 IE에 대해는 attachEvent 기능을 사용해야합니다 다음.

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

시도는 .. 내가 확인하지 않았다하지만 IE의 문제의 대부분은 헤더 부분

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

물론, 나는 그것을 알지 못했습니다. 감사 .. – PRASANTH

관련 문제