- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
IE9, FireFox 브라우저에서 image의 onload 이벤트가 불리지 않음. 본문
구글에서 검색해 보니 onload 이벤트 핸들러를 image.src = .. 구문 전에 넣어야 한다는 것은 알겠다.
왜냐하면 cache에서 이미지를 가져오는 경우에는 image.src = .. 문장을 만나면 바로 이미지를 load 해 버리고,
onload 이벤트 핸들러 설정이 그 다음에 있다면, onload 이벤트 핸들러는 불리지 않을 것이다.
그런데 FireFox 에서는 onload 이벤트 핸들러 설정을 image.src = .. 문장 앞에 넣어도 불리지 않았다.
http://stackoverflow.com/questions/12354865/image-onload-event-and-browser-cache
http://stackoverflow.com/questions/15888487/image-onload-event-not-firing-in-firefox
http://stackoverflow.com/questions/3877027/jquery-callback-on-image-load-even-when-the-image-is-cached
그래서 해결책으로 jQuery.imagesLoaded 라이브러리를 권하는 사람들이 많았다.
https://github.com/desandro/imagesloaded
http://imagesloaded.desandro.com/
사용법은 간단하다.
<script type="text/javascript" src="js/imagesloaded.pkgd.js"></script>
imagesLoaded( img, function() { } );
이렇게만 사용하면 된다.
이렇게 하니 FireFox 에서도 제대로 불렸다.
그런데 FireFox 브라우저는 onload 이벤트 핸들러에서 canvas의 context 에서 drawImage()를 호출할 때
NS_ERROR_NOT_AVAILABLE: 에러가 발생한다.
var ctx = canvas.getContext('2d');
// FireFox 에서는 NS_ERROR_NOT_AVAILABLE: 에러가 발생한다.
// [참고] https://bugzilla.mozilla.org/show_bug.cgi?id=574330
ctx.drawImage(img, 0, 0);
그래서 FireFox 에서는 canvas 에 svg 의 내용을 표시할 수 없었다.
[참고]
http://stackoverflow.com/questions/17049176/ns-error-not-available-component-is-not-available
https://bugzilla.mozilla.org/show_bug.cgi?id=574330
[2014-09-17]
IE 9 (Internet Explorer 9) 에서도 image load 이벤트가 불리지 않는 현상이 있어서,
( Chrome과 FireFox, Windows용 Safari 에서는 잘 동작했다. )
jQuery.imagesLoaded 라이브러리를 써서 코드를 다음과 같이 수정했다.
$(document).ready(function() { imagesLoaded(".image", function() { console.log("image load event called..."); var url = window.location.href; if( url.lastIndexOf("#") > -1 ) { var target = url.substring(url.lastIndexOf("#")); moveOffset(target); } }); // IE9 에서는 load 이벤트 핸들러가 불리지 않음. /*$(".image").load(function() { console.log("image load event called..."); var url = window.location.href; if( url.lastIndexOf("#") > -1 ) { var target = url.substring(url.lastIndexOf("#")); moveOffset(target); } });*/ });
'WEB (HTML, CSS)' 카테고리의 다른 글
'Source Sans Pro' Font / 'Roboto' Font (0) | 2014.09.02 |
---|---|
framer.js (0) | 2014.08.28 |
웹 접근성 인증 (장애인 차별 금지법을 위한) (0) | 2014.07.30 |
Brackets - The Free, Open Source Code Editor for the Web (0) | 2014.07.16 |
[css] @font-face (0) | 2014.07.15 |