2012-03-28 3 views
1
$(window).load(... 

로드 할 창에서 모든 작업을 기다립니다. 어느 쪽이 위대한가. 그러나 최근에 나는 페이지의 하중에서 특정한 시점에 이벤트가 발생하기를 매우 원했다. 예를 들어 'everything BUT images'.jQuery 창 특정 지점에서로드

실패한 시도를 나열 할 수 있으면 좋겠지 만 어디에서부터 시작해야할지 또는 그러한 일이 가능할지 모르겠다. 같은

뭔가 :

$(window).partialLoad({ 
    exclude : 'jpg, png, gif' 
}, function(){ 
    //do something when page has fully loaded except for images 
}); 

또는 반대로

$(window).partailLoad({ 
    waitFor : 'woff, eot' 
}, function(){ 
    //do something after all woff and eot files have loaded 
}); 

나는 그것을 처리 할 수있는 좋은 플러그인을 작성합니다 그것의 가능한 경우. 아무도 내가 이것을 성취 할 수있는 방법에 관해 올바른 방향으로 가르 칠 수 있습니까?

답변

1

연결된 모든 자원에 대한 $(window).load() 대기을 다운로드 할 수 있다는 가정, 우리는 이미지없이, 즉 iframe[src], script[src], link[rel="stylesheet"]

var items = $('iframe[src], link[rel="stylesheet"], script[src]'), 
    itemsLength = items.length; 

items.load(function() { 
    --itemsLength; 

    if (! itemsLength) { 
     // All loaded! 
    } 

}); 
+0

내가 이것에 대해 생각 될 것이라고 가정하고, 자신을 쓸 수 만들기 . 문제는 모든 링크 리소스가 요소에 나타나지 않는다는 것입니다. 예를 들어 백그라운드 이미지 또는 글꼴 파일이 외부 CSS에 나타납니다. 또한 모든 요소가 onload 이벤트 또는 jQuery로드 이벤트를 발생시키는 것은 아닙니다. – Fresheyeball

+0

@Fresheyeball 당신이 내'waitForImages()'플러그인의 반대편을 원하는 것처럼 들리네. – alex

+0

btw. 나는 당신의 블로그를 가끔 읽는 독자이고, 당신의 자바 스크립트 중 일부를 이용했다. 당신의 대답을받을 수있는 영광입니다. – Fresheyeball