Ловушка для клика на IFRAME - PullRequest
1 голос
/ 30 января 2012

У меня есть iframe, внутри которого есть ссылка на видео откуда-то. Я хочу, чтобы всплывающее окно div при нажатии на iframe.

<a href="javascript:alert();" class="iframelink">
                <iframe src="http://www.youtube.com/embed/zDNXx-PgU3k" width="213" height="195" frameborder="0"></iframe>
            </a>


$('.iframelink').click(function(){   
         alert('iframe clicked. Open popup.'); 
})

Как? Но потому что на самом деле другая страница JavaScript не может поймать событие клика. Есть ли способ?

Ответы [ 3 ]

2 голосов
/ 30 января 2012

Поскольку вы должны прикрепить обработчик к ссылке внутри iframe, вы должны найти его внутри iframe.Попробуйте это.

$('a.iframelink iframe').contents()//Will get iframe contents
.find('videoLinkSelector')//Pass the required selector
.click(function(){
   //Write your code here
});

contents() ссылка: http://api.jquery.com/contents/

Обратите внимание, что доступ к ресурсам iframe возможен только в том случае, если он находится в том же домене, что и его родительская страница.

1 голос
/ 30 января 2012

Вы можете попробовать использовать API YouTube.

http://code.google.com/apis/youtube/js_api_reference.html#Adding_event_listener

Хотя оно ограничено, вы можете делать то, что вам нужно.

1 голос
/ 30 января 2012

Помимо того, что я довольно непослушный и помещаю невидимый элемент поверх вашего IFRAME (клик-джекпинг), я думаю, что вам не повезло, так как я не думаю, что события внутри IFRAME всплывают вообще. Осторожнее здесь - вы на опасной территории. Будь монстрами.

P.S. одним из вариантов будет указание IFRAME на страницу на вашем сайте, к которой вы можете добавить событие onclick, которое затем вызовет функцию / событие для родительского элемента, однако вам все равно не повезет, когда я думаю, это касается стрельбы при нажатии на объект FLASH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...