2

오랫동안 사용 해본 슬라이드 쇼가 있습니다. 사이트를 XHTML 과도기로 업데이트하고 있으며 이제는 IE 9에서 슬라이드 쇼가 작동하지 않습니다.Javascript : document.images []. IE에서 작동하지 않습니다.

"전체"기능이 작동하지 않는 것 같습니다.

function Initialize() { 
    document.images["carImg"].src = imgList[0]; 
    if (document.getElementById) { 
     theLink = document.getElementById("linkTo"); 
     theLink.href = imgURL[0]; 
    } 
    if (document.images["carImg"].complete) SetTheInterval(); 
    else setTimeout("Initialize()", 1000); 
} 

document.images["carImg"].complete

항상 false로 해결하고, 그래서 매 초마다 초기화를 호출 : 다음 코드는 (이 페이지가로드 한 후 호출 할) 시작 슬라이드 쇼를 가져옵니다. imgList[0] 은 표시되기 때문에이로드되었습니다. 그러나 완전한 속성이 설정되지 않았습니다.

if (document.images["carImg"].complete)을 조건부로 주석 처리하고 SetTheInterval()으로 전화하면 슬라이드 쇼가 작동합니다.

Firefox에서도 작동합니다 (조건부 포함). IE 9를 "호환성보기"로 설정하면 작동합니다 (다른 것들은 이상하게 보입니다).

"완벽한"속성이 IE 9에서 설정되지 않는 이유를 아는 사람이 있습니까? 뭔가 바뀌 었습니까?

업데이트 : 완료 이미지는 인데은 첫 번째 이미지에서 작동하지 않습니다. 후속 이미지의 경우 이미지가로드되면 완료가 설정됩니다.

+1

콜백을 사용해 보셨습니까? 나는 당신의 방법이 옳다고 생각하지 않습니다. 'document.images [ "carImg"] .complete = SetTheInterval;' – Gandaro

+0

음, 그것은 수년간 일해 왔고, Firefox에서도 작동합니다. document.images []. complete에서 Google 검색을하면 많은 결과가 나타납니다. 게다가, 이미지가로드 될 때 SetTheInterval을 호출하고 싶지는 않습니다. 이번에 만. – Cynthia

답변

0

... 영원히 계속 그 공장.

문제는 이미지 태그가 src 인 이미지를 spacer.gif (HTML)으로 설정했기 때문입니다. 따라서 초기화 루틴이 실행될 때 이미지의 complete 속성은 true입니다.

그러나 src 속성 (자바 스크립트)을 이미지 목록의 첫 번째 이미지로 재설정하면 complete 속성이 false이됩니다. 왜 그런지 모르겠습니다. 그 다음에 src 속성을 이미지 목록의 다른 이미지로 변경하면 complete 속성을 true으로 설정했습니다.

IE9와 Chrome에서는 모두 이런 식 이었지만 Firefox에서는 그렇지 않았습니다. 그림을 이동. 따라서 이미지의 srcspacer.gif으로 설정하는 대신 코드 숨김 (C#)에서 이미지 이름 목록이 포함 된 자바 스크립트 파일을 읽고 이미지 태그의 초기 src 속성을 첫 번째 이미지로 설정합니다. 이제 작동합니다.

FWIW, 이미지 태그에 onerror를 사용해 보았지만 오류가 발생하지 않았습니다.

쉬 쉬. 나는 자바 스크립트를 좋아하지 않는다.

0

onload 또는 오류 이벤트가 있는지 확인해보십시오. 이미지가있는 경우에도 src를 재설정하여도 '더티'이미지가 즉시 완료되지 않을 수도 있습니다.

IE10 (9 개가 없음)에서 onload 이벤트가 필요합니다. onload가 실행되면 complete는 true이지만 img src에 쓰면 바로 false가됩니다. 또한 src를 한 번만 설정하고 제한 시간 내에 완료를 확인하면됩니다.

그리고 온로드 핸들러없이

, 이미지가 나타납니다 후에도 타이머가 나는 이것이 가장 좋은 대답은 잘 모르겠지만, 시간이 낭비이며

window.ready=function(){ 
    var img= document.images[0]; 
    img.onload= function(){ 
     clearTimeout(ready.timer); 
     alert('onload called, img.complete= '+img.complete);    
    }; 
     // temporary error handler, if needed 
     img.onerror=function(e){    
       clearTimeout(ready.timer); 
       alert('Error!\n'+e.message || e); 
     }; 
     // set the new src 
    img.src= Memry.Rte+'art/sundrag.gif'; 
    if(!img.complete) ready.timer=setTimeout(window.ready, 300); 
    else alert('complete'); 
} 
ready() 
관련 문제