2012-08-22 2 views
7

iframe 내에서 클릭 이벤트를 부모 요소로 트리거하려면 어떻게해야합니까?iframe 내에서 클릭 이벤트를 부모 요소로 트리거하는 방법은 무엇입니까?

iframe을 열기 전에 상위 페이지에서 다음 코드를 시도했습니다.

jQuery('iframe').contents().bind('eventhandler', function() {    
       alert('event was fired'); 
     }); 

는 또한

jQuery(document).bind('eventhandler', function(e) { 
alert('event was fired'); 
}); 

와 iframe 내에 내가 클릭 이벤트

jQuery(document).trigger('eventhandler');      

에이 코드를 임베디드 한

을 시도하지만 내가 여기서 뭔가 잘못하고있는 중이 야 작업을 does't?

+0

if [trigger click event in if rame 부모 창] (http://stackoverflow.com/questions/3521947/trigger-click-event-in-iframe-parent-window) –

답변

6

iframe의 상위 문서를 참조해야합니다. 이것은 당신이 무엇을해야한다 :

index.html을 :

<iframe src="iframe.html"></iframe> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
$(function(){ 
    $(document).on('eventhandler', function() {    
     alert('event was fired'); 
    }); 
}); 
</script> 

iframe.html : 당신은 모두의 소스의 제어가있는 경우

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script> 
$(function(){ 
    parent.$(parent.document).trigger('eventhandler'); 
}); 
</script> 
+0

너희는 그 고맙구나!, 난 IE 또는 크롬과 어떤 문제가 생길 수 있기를 바랍니다. , 나는 아직 그것을 테스트하지 않았다. 파이어 폭스 – themis

+0

에서만 서버 (아파치 또는 기타)에서 실행하면 모든 곳에서 작동합니다. 유일한 문제는 iframe (및 iframe 콘텐츠 및 jquery) 부모 jquery 전에로드 할 수 있지만 내 샘플 에서처럼 "onload"이벤트를 트리거하지 않는 가정합니다 .-) – tborychowski

+0

아니 완벽하게 작동합니다 잘. 준비 상태에 첫 번째 이벤트를 추가 한 다음 iframe 내에서 클릭하여 작동하는 버튼에 두 번째 이벤트를 추가합니다. 고맙습니다. – themis

관련 문제