如何让iFrame接受ondblclick事件?

时间:2010-12-12 09:16:07

标签: javascript javascript-events

我查看了w3school,它显示ondbclick事件是“除了base,bdo,br,frame,frameset,head,html,iframe,meta,param,script,style和title之外的所有元素都有效。 ” ...

但是当iframe成为dbclick时我真的想做点什么,我怎么能这样做?谢谢。

W3School参考: http://www.w3schools.com/TAGS/ref_eventattributes.asp

2 个答案:

答案 0 :(得分:1)

观察iframe的加载事件,一旦它被触发,您可以将ondblclick分配给iframe内的文档。

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

注意:如果iframe中的文档位于父窗口之外的另一个(子)域上,则这将受同源策略的限制。

答案 1 :(得分:0)

这可以使用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,使其“通用”应该非常简单(尽管不是微不足道)。