이미지가로드되기 전후에 함수를 실행할 jQuery 플러그인을 작성했습니다. 본질적으로 이것이 큰 이미지를 표시 할 때 로딩 애니메이션을 표시 할 수 있습니다. (e.g.404를)로드하지 못했습니다 이미지Internet Explorer에서 img.complete를 확인할 때 경쟁 조건이 있음
if (typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
return; // 1
}
// 2
if (!this.complete) {
options.preload(this); //3
$(this).load(function() {
options.loaded(this); //4
});
}
- 확인합니다. 이미지가
- 그렇지 않은 경우
this.complete
를로드되었는지 - 점검, 프리로드 함수를 호출 (로딩 애니메이션 중지)
이를
load
이벤트에 대한 콜백을 추가 (로딩 애니메이션을 시작) Chrome과 Firefox에서 잘 작동합니다. 그러나 IE (9)에서는 preload
함수가 실행되는 경우가 있지만 loaded
함수가 아닌 것을 알게되었습니다. 나는 이것이 경쟁 조건 일 수 있다고 생각합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 사전로드 기능을 호출 한 후 다시 this.complete
을 확인해야합니까?
감사
벤
그것은load
도 핸들러가 연결되어있는 경우에 따라
을 시작합니다 이 게시물에서 같은 문제에 대해 논의했습니다. http://nnucomputerwhiz.com/ie9-image-load-event-bug.html –