2013-07-03 3 views
0

IFRAME에 외부 콘텐츠 (ibnlive.in.com)가로드되어 있는데 해당 프레임에서 click 이벤트를 처리 할 수 ​​없습니다. 내가 외부 소스에서로드 이벤트를 클릭하여 처리 할 방법외부 iframe에서 jquery 이벤트를 처리합니다.

<iframe src="books/1.xhtml" width="100%" id="bookcontentHeight" frameborder="0" marginheight="0" marginwidth="0" > </iframe>  

이는

var iframeDoc = $('#bookcontentHeight').contents().get(0); 
     // Bind event to iframe document 
     $(iframeDoc).bind('mouseup', function(e) {      
       e.preventDefault();     
       $("#custom-menu").css({ top: e.pageY + "px", left: e.pageX + "px" }).show(100); 
     }); 

내 코드입니다하지만 난 할 수 IFRAME에로드 로컬 데이터를 처리 할 수 ​​있습니다.

답변

3

약간 다른 개체에 이벤트 처리기를 연결해야합니다. 시도 :

var targetWindow = iframeDoc.contentWindow || iframeDoc.contentDocument; 
if (targetWindow.document) { 
    var targetDocument = targetWindow.document; 

    $(targetDocument.body).bind("mouseup", function(){ 
     // event handler 
    }); 
} 
+0

나는 시도했지만 작동하지 않습니다. 파이어 폭스 말하기 : 오류 : 속성 '문서'에 액세스 할 수있는 권한이 거부되었습니다 – user655334

+0

그럼 그게 전부입니다. 보안상의 이유로 일부 브라우저는 iframe에 대한 액세스를 잠급니다. facebook.com으로 은밀히로드 된 iframe을 상상해보십시오. 사용자가 알지 못하는 상태에서 게시물을 올리면 사용자를 속일 수 있습니다. –

+0

서버에서 책 (epub 형식) 콘텐츠를 표시해야합니다. IFRAME에서 이벤트를 어떻게 처리합니까? – user655334

관련 문제