2016-12-02 6 views
0

IE8 사용자로부터 아코디언 탭을 열 수 없다는 불만이 있습니다.IE8 개체가 'addEventListener'메서드 또는 속성을 지원하지 않습니다.

그들은 다음과 같은 오류되게됩니다 :

SCRIPT438 : 개체가 속성 또는 메서드를 지원하지 않습니다 '또는 addEventListener'

 document.addEventListener("DOMContentLoaded", completed, false); 
     window.addEventListener("load", completed, false); 
     } 
     } 
     return readyList.promise(obj); 
    }; 
jQuery.ready.promise(); 

내가 현재 사용하고 JQuery와 2.1.3

이를 다음 스크립트에서도 오류가 다시 나타납니다.

<script type='text/javascript'> 
$(document).ready(function() { 
document.getElementById('txt1').addEventListener('change', function() { 
var style = this.value == 'GP Practice' ? 'block' : 'none'; 
document.getElementById('txtpcode').style.display = style; 
}); 
}); 
</script> 

Is IE8에서 addEventListener가 지원되지 않는다는 것을 알고 있기 때문에이 기능을 사용할 수 있습니다.

+1

Microsoft는 더 이상 IE8에 대한 보안 픽스를 생성하지 않습니다. IE8을 지원하기 위해 사이트를 확장하는 대신 최신 브라우저로 업그레이드하도록 권장하십시오. – Quentin

+1

IE8은 브라우저 시장 점유율 세계 월드 (IE9 - 0.51 %) (IE10 0.47 %)의 0.78 %를 보유하고 있습니다 ** ** 1 년 미만은 ** 시간을 소비 할 가치가 없습니다 ** – Endless

+0

나는 두 분과 완전히 동의합니다. – itguyme

답변

1

IE8에서는 attachEvent을 사용해야합니다. 순수한 자바 스크립트를 사용하면 사용자의 브라우저 을 감지하고 attachEvent 또는 addEventListener을 사용해야합니다.

하지만 JQueryon() 기능을 사용하는 것이 좋습니다. 그것은 논리를 포함하고 모든 브라우저에서 작동합니다.

0

구문

부착 = target.attachEvent (eventNameWithOn 콜백)

대상

에 이벤트

eventNameWithOn를 수신하도록 DOM 요소

수신 대기 할 이벤트의 이름으로, 이벤트 처리기 속성 인 것처럼 "on"접두사가 붙습니다. 예를 들어, "onclick"을 사용하여 click 이벤트를 수신합니다. 이벤트 대상이 트리거 될 때

콜백

콜백 함수를 호출한다. 함수는 인수없이 호출되며이 참조는 윈도우 객체로 설정됩니다. 첨부 됨 이벤트 핸들러가 성공적으로 연결되었는지 여부를 나타내는 부울.

+0

* attachEvent *는 OP 코드가 추론하는 리스너에서 * this *를 설정하지 않습니다. * attachEvent *를 사용하여 * addEventListener *를 에뮬레이트하는 많은 예제가 있습니다. – RobG