2013-07-03 4 views
0

У меня IFRAME, загруженный внешним контентом (ibnlive.in.com), я не могу обрабатывать события кликов в этом фрейме.события jquery handle из внешнего 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 say: Ошибка: Permission denied для доступа к свойству 'document' – user655334

+0

Вот и все. Некоторые браузеры блокируют доступ к iframe по соображениям безопасности. Представьте себе, что тайно загруженный iframe с facebook.com, и вы сможете обмануть пользователя, чтобы он опубликовал что-то, даже не подозревая об этом. –

+0

У меня есть требование показать содержимое книги (epub format) с сервера. как я обрабатываю события в IFRAME. – user655334

Смежные вопросы