日期:2014-05-16  浏览次数:20386 次

如何监听跨域iframe点击事件
如题,但我不想使用刷新代理iframe的方式来调用父页面的回调,或者使用定时器监听某变量的变化来调用。还有没有其他的办法?
PS:
webqq那个widget(天气和时钟)做的很好,widget内部为一个单独页面,确实是跨域的。每当点击iframe并拖动,发现有请求发送,但是页面不刷新(浏览器历史没有变化),但确实将点击事件通知到了外部页面,并可以拖动。不知webqq那个跨域iframe拖动是如何实现的?希望高手给予解答,谢谢。

------解决方案--------------------
探讨

引用:

其实我是想问的是你为什么会认为拖动时钟的请求(应该是监测吧)的方法是由内层的iframe触发事件来做的呢,据我看到的顶层元素id是这个appWindow_11的z-index值很高,触发监测请求的事件为什么不可能绑在这个元素上呢?

如果是这样
<div id='appWindow_11'>
<iframe></iframe>
</div>
的话……

------解决方案--------------------
跨子域是没有问题的,只要主域相同就行了

两页面的 document.domain = 'qq.com'

另外,如果当需要操作iframe的移动时,可以这样

<div id='appWindow_11'>
<div id='mask'>一个透明遮罩</div>
<iframe></iframe>
</div>