2011-08-30 6 views
1

을 사용하여 비활성화되어 있는지 여부를 감지하는 신뢰할 수있는 방법이 절실히 필요합니다. 내가 시도하고있는 일이 매우 나쁜 프로그래밍 형식 (중요한 목적을 위해 활성 이미지의 자바 스크립트 감지에 의존 함)임을 이해합니다. 그러나, 나는이 탐지에 크게 의존하는 몇 가지 코드를 가지고있다. http://jsfiddle.net/5BPJj/1/이미지가 ie9 자바 스크립트

이 IE9를 제외한 모든 브라우저에서 잘 작동 :

는 여기에 내가 시도하고있는 무슨의 예입니다. IE9의 $ (window) .load는 모든 이미지가로드되기 전에 이벤트가 발생한다는 점에서 독특합니다. 따라서 경쟁 조건이 발생합니다. 이미지가 활성화 된 경우에도 아직로드되지 않았으므로 비활성화 된 상태로 처리됩니다.

는 여기에서 이미지 검출 코드를 잡고 : http://talideon.com/weblog/2005/02/detecting-broken-images-js.cfm

을 누군가가 IE9 (와 IE7 + 등)에서이 작업을 진행하거나,보다 안정적인 이미지 검출 방법을 알고 수 있다면, 나는 대부분의 가장 이해할 수있을 것 .

이미지가 사용 설정된 경우 (간단한로드 이벤트)뿐만 아니라 사용 중지 된 경우에 대해서도 알아야합니다.

정말 고마워요.

=======

편집 : 나는 도구> 인터넷 옵션>을 사용하고, IE의 이미지를 사용하지 않으려면 고급을 선택 취소은 "사진"당신이 사용할 수 있다면

답변

0

jQuery DOM로드시 ready() 메소드가 "이미지와 같은 모든 애셋이 완전히 수신 될 때까지 트리거되지 않음"(documentation 페이지에서) 깨진 이미지 감지 기능을 사용할 수 있습니다. 덕분에이 확실히 작동

+0

을하는 데 도움이

jQuery(document).ready(function() { for (var i = 0; i < document.images.length; i++) { if (!IsImageOk(document.images[i])) { document.images[i].style.visibility = "hidden"; } } }); 

희망이 같은

뭔가 내가 생각하는 트릭을 할 것입니다. 호기심에서 어떤 역/전진 캐시 문제가 발생할 수 있는지 알 수 있습니까? – Jish

+0

나는 그렇게 생각하지 않는다. 브라우저가 이미지를 캐싱하는 방식은 일단로드 된 후에 자바 스크립트를 사용하는 것과 완전히 독립적이어야합니다. – Clive

+0

엄청난 도움. 정말 고마워. – Jish

관련 문제