2011-08-05 2 views
4

나는, 나는 그것이로드 될 때 통지 할 iframe을 내 페이지에 자바 스크립트 곳을 통해 내 페이지에 추가됩니다 알고 있지만이 작동하지 않습니다iFrame.load() 이벤트에 .live()를 사용 하시겠습니까?

$("iframe").live("load", 
    function() { 
     alert(this.name + ": Im loaded!"); 
    }); 

없음 경고가
어떤 생각을 표시되지 않습니다 왜? 어떤 생각이라도 우리는 어떻게이 일을 성취 할 수 있습니까?

답변

3

iframe을 페이지에 추가 한 후 콜백을 수행 할 수 있다고 생각합니다. here에서 설명한 것처럼 live()를 iframe load()에 바인딩 할 수 없습니다.

참고 : .live() 및 .delegate() 메소드가 iframe의 로드 이벤트를 검출하기 위해 사용될 수 없다. 로드 이벤트가 상위 문서 을 올바로 표시하지 않으며 이벤트 위임을 수행하는 데 필요한 Firefox, IE9 또는 Chrome에서 event.target을 설정하지 않았습니다.

그래서 콜백에서 iframe이로드 된 후 발생하도록 타임 아웃을 설정해야합니다.

$("iframe").load(function() { 
    alert(this.name + ": Im loaded!"); 
}); 
+2

+1이 가능하지 않습니다. 그러나 제안 된 솔루션은 적용 할 수 없습니다. 그렇지 않으면 live()를 사용하려고하지 않을 것입니다! 나는 해결 방법을 찾으려고 노력할 것이다. thnx –

+0

슬프게도 라이브 또는 델리게이트가 아직 iframe로드 이벤트에서 작동하지 않습니다. – ace

-1

이 이벤트는 Window 객체에서 작동 부하, 작동하지 않습니다.

원하는 경우

는 iframe을 내부 페이지가 로딩 될 때, 당신은 상위 페이지를 통지 window.parent를 호출 페이지, 내부의 에 코드를 작성해야 발견한다.

+1

잘못되었습니다! .load()는 "src"가 행동하는 모든 DOM 요소, 즉 iFrame, window, img 등에서 작동합니다. –

+0

내부 ** 페이지 **가로드 될 때주의해야합니다. ** iframe ** 자체는로드되지 않습니다. 권리? 그것이 작동하지 않는 이유입니다. – JSPDeveloper01

관련 문제