Как разрешить iFrame принять событие ondblclick? - PullRequest
0 голосов
/ 12 декабря 2010

Я извлекаю w3school, и он показывает, что событие ondbclick «Действителен для всех элементов, кроме base, bdo, br, frame, frameset, head, html, iframe, meta, param, script, style и title. »...

Но я действительно хочу сделать что-то, когда iframe dbclick, как я могу это сделать? Спасибо.

W3Школьная справка: http://www.w3schools.com/TAGS/ref_eventattributes.asp

Ответы [ 2 ]

1 голос
/ 12 декабря 2010

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

<iframe src="some.htm" 
        onload="this.contentWindow.document.ondblclick=function(){alert('it work\'s');}">
</iframe>

Примечание: это будет ограничено той же самой политикой происхождения, если документ внутри iframe находится в другом (суб) Домене, чем родительское окно.

0 голосов
/ 12 декабря 2010

Это возможно с помощью хитрости CSS: поместите пустой div поверх iframe и перехватите событие двойного щелчка этого элемента div. Вот код, необходимый:

<div style="position: relative;">
    <div style="position: absolute; left: 0px; top: 0px; width: 500px; height: 300px; z-index: 100;">
        <iframe src="myotherpage.html" width="500" height="300"></iframe>
    </div>
    <div style="position: absolute; left: 0px; top: 0px; width: 500px; height: 300px; z-index: 999;" ondblclick="alert('frame double clicked');"></div>
</div>

«Сердцем» этого является установка z-индекса обоих, причем DIV имеет большее значение и, конечно, оба они имеют одинаковый размер.

Используя jQuery, довольно просто (хотя и не тривиально) сделать его «универсальным», добавив дополнительный div при загрузке страницы и применив необходимый CSS на лету.

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