2013-02-26 2 views
6

첫째로 꺼내기 : 가능한 경우 사물을 비동기 적으로 실행해야한다는 것을 알고 있습니다.다음 함수가 실행되기 전에 iframe이로드 될 때까지 기다리시겠습니까?

은 본질적으로 이것은 IFRAME으로 현재 페이지를로드 :

나는 함수라는 랩이있다. 링크가 페이지에서 클릭 될 때에도 자바 스크립트가 실행되도록 유지해야합니다.

function wrap(){ 
    event.preventDefault(); 
    var pathname = window.location.pathname; 
    $('body').html('<iframe id="wrapper" src="'+ pathname +'" >') 
    $('iframe').load(function(){ 
      //this is where the magic outght to happen 
    }); 
} 

랩이 실행되면 iframe의 내용을 조작하기 시작합니다. 애플 리케이션의 구조를 위해 랩 함수의 ouside 또는 랩 함수에 전달하는 매개 변수를 사용하여이 작업을 수행해야한다. 애니메이션을 실행하고 소리를 재생하는 일련의 함수로이 작업을 수행합니다 (시간이 걸리고 순차적으로 실행되어야하는 항목). 이것은 내가 겉으로보기에 이상적입니다.

답변

7

jQuery는 문서와 마찬가지로 iframe에서 준비 기능을 사용할 수 있습니다. 강조 표시 기능에 넣으면 iframe로드가 완료된 후에 실행됩니다.

$("iframe").ready(function(){ 
    // do something once the iframe is loaded 
}); 
+3

실제로로드 된 후 코드가 실행 것이이 방법의 reday-function은 iframe에서 작동하지 않지만 load-function에도 콜백 함수가 있으므로 전체 apporoach가 작동합니다! – Himmators

+0

여러 iframe이로드 될 때까지 기다리는 것은 어떻습니까? – jbyrd

+0

iframe에서 준비 기능을 사용할 수 없습니다. DOM이 완전히로드 된 후 콜백을 실행하기 만하면됩니다. JQuery는 .ready (핸들러) 함수를 호출하는 대신 $ (핸들러) 구문을 사용하도록 권장한다. https://api.jquery.com/ready/ – MorgoZ

-4

당신은 함수를 만들 수 있습니다

function iframeready() { 
    // code after iframe is loaded 
} 

을 그리고 iframe이로드 이벤트 의 콜백이 함수를 통과 그래서 iframe이이

+1

그의 질문과 전혀 관련이 없습니다. 그는 방금 언급 한 iframe로드 이벤트에 대해 묻고있었습니다 ... 저는 그가 함수를 선언하는 방법을 알고 있다고 생각합니다. – ied3vil

관련 문제