2013-07-03 63 views
0

我有IFRAME加載外部內容(ibnlive.in.com),我無法處理該框架中的點擊事件。jquery處理來自外部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加載本地數據,

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

如何處理點擊事件,從外部源加載。

回答

3

您需要將事件處理程序附加到稍微不同的對象。嘗試:

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

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

我試過了,但沒有工作。 Firefox說:錯誤:權限被拒絕訪問屬性'文件' – user655334

+0

就是這樣。出於安全原因,某些瀏覽器會鎖定對iframe的訪問權限。想象一下,使用facebook.com暗中加載iframe,你就可以欺騙用戶在他/她不知情的情況下發布內容。 – 2013-07-03 10:59:56

+0

我有要求顯示來自服務器的書(epub格式)內容。我如何處理IFRAME中的事件。 – user655334