답변:
이미지를 동적으로 생성 할 onload
때 src
.
var img = new Image();
img.onload = function () {
alert("image is loaded");
}
img.src = "img.jpg";
Fiddle- 최신 Firefox 및 Chrome 릴리스에서 테스트되었습니다.
동적으로 생성 된 단일 이미지에 적용한 이 게시물 의 답변을 사용할 수도 있습니다 .
var img = new Image();
// 'load' event
$(img).on('load', function() {
alert("image is loaded");
});
img.src = "img.jpg";
.src
.onload를 설정 하기 전에 잘못된 작업을 수행하고 설정하는 이유는 무엇 입니까? 첫 번째 코드 예제에서 옳았지만 두 번째 코드는 엉망이었습니다. 두 번째는 일부 버전의 IE에서 제대로 작동하지 않습니다.
=]
사용 .complete
하므로 코드에서이를 보여줍니다. 물론 모범 사례를 위해 항상 src
모든 핸들러 바인딩을 설정할 수 있습니다 .
.complete
이 경우 의지 할 이유가 없습니다 . 설정하기 전에 먼저로드 핸들러를 설정하기 만하면됩니다 .src
. 상상할 수있는 모든 브라우저에서 수천 개의 사이트에서 사용하는 슬라이드 쇼를 작성했으며 첫 번째 기술은 매번 작동합니다. .complete
이와 같이 처음부터 새 이미지를 만들 때 확인할 필요가 없습니다 .
=]
좋습니다. 미리 알려 주셔서 감사합니다 . 귀하의 추론을 반영하여 답변을 업데이트했습니다 . 또한 @ jfriend00 이미지가 IE에서로드되는지 확인할 수 있습니까? 내 네트워크 또는 IE 및 이미지에 문제가 있는지 궁금합니다.
img.src = ''
이전에 사용 된 경우 새로운 src를 할당하기 전에 웹킷이 필요하다는 것을 발견했습니다 .
이러한 종류의 상황에 대해 두 가지 가능한 솔루션이 있습니다.
다음 src
과 같이 브라우저가 다시 다운로드하도록 이미지 에 고유 한 접미사를 추가합니다 .
var img = new Image();
img.src = "img.jpg?_="+(new Date().getTime());
img.onload = function () {
alert("image is loaded");
}
이 코드에서는 이미지 URL 끝에 현재 타임 스탬프를 추가 할 때마다 고유하게 만들고 브라우저에서 이미지를 다시 다운로드합니다.
.onload
설정하기 전에 핸들러를 설정하기 만하면 .src
일부 버전의 IE에서 onload 이벤트를 놓치지 않습니다.
오늘도 같은 문제를 만났습니다. 다양한 방법을 시도 후, 난 그냥 내 크기의 코드를 넣어 실현 $(window).load(function() {})
대신에 document.ready
(페이지를 ajaxing하지 않는 경우) 문제의 일부를 해결할 것입니다.
$(document).ready
를 $(window).load
해결 하기 위해 변경 했습니다 .