2010-12-12 2 views
0

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

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

W3School ссылка: http://www.w3schools.com/TAGS/ref_eventattributes.asp

ответ

1

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

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

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

0

Это возможно с помощью CSS трюка: положить пустой 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-индекс и, с ДИВ, имеющие большее значение, и, конечно, иметь их как один и тот же размер.

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

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