2012-05-21 4 views
2

작동하지 않습니다. 크롬에서만 작동하지 않습니다미리로드 이미지 나 자바 스크립트로 이미지를 미리로드하기 위해 노력하고있어

+0

IIRC, 이미지를 미리로드하는 것이 너무 빠르면 작동하지 않습니다. 즉, 'document.images'가 아직 정의되지 않았습니다. – MaxArt

+0

'image [i] .src = sources [i] [0];'으로'image [i] .src = sources [i];를 바꾸어보세요. – Gavin

+0

어떤 브라우저를 사용하고 있습니까? 또한 아마 하나의 배열을 사용하고 싶을 것이다 :'preloadImages ([ '../../ Content/Resources/close_mouse_over.png', '../../Content/Resources/close.png']); ' –

답변

0

내 의견에 언급했듯이 배열 배열을 preLoadImages 메소드에 전달하고 있습니다.

결과적으로 배열을 image[i].src에 전달하면로드되지 않습니다. 당신은 배열의 배열을 유지하려는 경우

후 사용,

$(document).ready(function() { 
    preloadImages(
     ['../../Content/Resources/close_mouse_over.png', '../../Content/Resources/close.png']); 
}); 

function preloadImages(sources) { 
     var image = new Array(); 
     for (var i = 0; i < sources.length; i++) { 
      image[i] = new Image(); 
      image[i].src = sources[i]; 
     } 
    } 

function mouseOverForImage(imgId, imgSrcs) { 
     document.getElementById(imgId).src = imgSrcs; 
    } 

을 시도하거나

function preloadImages(sources) { 
     var image = new Array(); 
     for (var i = 0; i < sources.length; i++) { 
      image[i] = new Image(); 
      image[i].src = sources[i][0]; 
     } 
    } 
편집, 추가 조사에 가능한 원인이 preloadImages입니다

은 사전로드 후 image 배열을 파괴 이미지들.

이 대신하려고 :

function preloadImages(sources) { 
    window.preloadedImages = new Array(); 
    for (var i = 0; i < sources.length; i++) { 
     window.preloadedImages[i] = new Image(); 
     window.preloadedImages[i].src = sources[i]; 
    } 
} 

이것은 그들이 제대로 미리로드 할 수 있도록, 윈도우 객체 내에서 사전로드 된 이미지를 저장합니다.

희망 하시겠습니까?

+0

왜 [[../ ..] ../Content/Resources/close_mouse_over.png ','../../Content/Resources/close.png '] 배열의 배열입니다. 간단한 배열 – karaxuna

+0

죄송합니다, 이해합니다. 감사합니다. – karaxuna

+0

지금 사용해 보겠습니다. – karaxuna

관련 문제