2013-10-29 4 views
0

로드 된 비디오의 크기가 필요하기 때문에 비디오 태그를 다시 작성하는 이벤트 인 "loadedmetadata"를 실행하려고합니다.IE8 : "loadedmetadata"이벤트를 실행하십시오.

IE8로
if (!$("mySelector").addEventListener) { 
    $("#mySelector").addEventListener("loadedmetadata", function(e){ 
     alert("Fired with addEventListener!"); 
    }, false); 
} 
else { 
    $("#mySelector").attachEvent("onloadedmetadata", function(e){ 
     alert("Fired with attachEvent!"); 
    }); 
} 

, 나는 아름다운 "이 속성 또는 메서드를 지원하지 않는 개체"이 : 이미 나는이 예제를 코딩있는 this answer을 본 적이

. 여기서 내가 뭘 잘못하고 있니?

미리 감사드립니다.

답변

1

JavaScript 메소드와 jQuery를 결합해서는 안됩니다. 마찬가지로, loadedmetadata 이벤트를 추가 할 .bind() 방법을 사용

$('#myMedia').bind('loadedmetadata', function(e){ 
    // e is Event Object jQuery handles 
    var ht = $(this).height(), wd = $(this).width(); 
}); 

.addEventListener() 때문에 IE9 때까지 .attachEvent()으로 발광하지 않습니다 존재하지 않는 IE9와 미디어 이벤트로 표준화되었다. 이 두 메소드 모두 jQuery 함수 $()이 반환하는 객체의 속성이 아닙니다.

위의 솔루션이 보는 동작하지 않으면

:

jQuery, checking to see if video has height/width

+0

는 답변 주셔서 감사합니다. 안타깝게도 IE8은 이벤트를 발생시키지 않으며 비디오가로드 될 때 .width() /. height()가 작동하지 않습니다. –