2010-03-26 6 views
3

에로드중인 페이지가 있습니다.

<iframe> 내부, 나는 ALL 페이지의 콘텐츠 (이미지, 자바 스크립트, CSS 등)까지 발사 전에로드 기다려야 할 예정이다 jQuery의 $(window).load() 이벤트를 사용하여로드 끈기 페이지를 대기하는 기능을 가지고있다.

이 함수는 에있는 내용의 높이를 다시 보내기 위해 을로드하는 페이지로 다시 호출합니다.이 페이지는 postMessage입니다.

IE7, IE8, Firefox 2, Firefox 3, Opera 및 Chrome의 기능을 테스트했으며 모든 것이 잘 작동합니다. Safari에서 페이지를로드하려고하면 이미지가로드되기 전에이 함수가 콜백합니다 ... 따라서 페이지 높이가 잘못되었습니다.

Safari가 이미지를로드하기 전에 함수를 호출하기 전에 기다리는 방법을 알고있는 사람이 있습니까 (이 경우 jQuery 솔루션이 더 좋음)?

답변

5

오프셋을 확인하면 콘텐츠로드/레이아웃 완료를위한 사파리 강제 종료가 완료 될 때까지 자바 스크립트를 차단합니다. 다음과 같이 사용할 수 있습니다.

$(window).load(function() { 
    var block = document.body.offsetWidth; 
    //Rest of code... 
});