문제

IE6 및 Firefox에서 작동합니다. 그러나 어떤 이유로 IE7이 아닙니다.

page_init에서 asp.net을 사용하여 책의 이미지 링크 인 장과 pageids를 보유하는 JavaScript 배열 목록을 채 웁니다.

전.

1 장 -> href = "JavaScript : Seepage (4);"

다음은 내가 사용하는 실제 코드입니다.


var availablePages = ['1002_001','1002_002','1002_003','1002_004','1002_005'];

function seePage(index) {
    $get('imgSingle').src = 'graphics/loading.gif';
    var img = new Image();
    img.src = 'get.jpg.aspx?size=single&id=' + availablePages[index];
    img.onload = function() {
         var single = $get('imgSingle');
         single.src = img.src;
    }
}

1 장을 클릭하면 이미지가 전반적으로 이미지가 잘로드되고 (IE6,7, FF) 두 번째 장 링크를 클릭하는 것도 작동합니다. 그러나 IE7에서 동일한 장을 두 번 클릭합니다 (CHAP1, Chap2, Chap1 다시) 이미지가 '로딩'이미지에 갇히게됩니다. .

도움이 되었습니까?

해결책

IE가 이미지를 캐시하고 이미로드 된 후에는 Onload 이벤트가 발생하지 않기 때문입니다.

SRC 전에 온로드 이벤트를 배치해야합니다.

var availablePages = ['1002_001','1002_002','1002_003','1002_004','1002_005'];

function seePage(index) {
    $get('imgSingle').src = 'graphics/loading.gif';
    var img = new Image();
    img.onload = function() {
         var single = $get('imgSingle');
         single.src = img.src;
    }
    img.src = 'get.jpg.aspx?size=single&id=' + availablePages[index];
}

다른 팁

이 작업을 수행하는 또 다른 방법은 이미지가 이미로드되었는지 확인하는 것입니다. image.complete. 예를 들어:

var img = new Image();
img.src = 'foo.jpg';
if(img.complete){
    img.onload = function(){ /* ... */ };
} else {
    /* execute something else, or the same. */
}

나는 IE6과 7 에서이 행동을 경험했다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top