标签:
今天,2012-2-22,是个很二的日子,遇到了一个诡异的问题~~
下午收到一封信。
—————————————————————————
于是我模拟了一个页面,地址:http://4.feifeipan59.sinaapp.com/blog/iframe.html
当点击“hide me”时,弹出层会关闭,但是同时会触发下面的广告点击。
首先,考虑到是不是这个弹出层的层级太低,所以设置了z-index,但是无效。在继而尝试setCapture、cancelBubble、returnValue=false都失败了。
因为问题是IE引起的,所以以下解决方案请在IE下看。
方法一
分析了一下,iframe中的A链接应该在弹出层隐藏的一瞬间仍然被点击到了。
在点击“hide me”时,用一个div盖住广告,然后延迟把这个div隐藏。这个方法也可行,但是一定要在onclick的事件中触发,因为mousedown的时间比click早,所以仍然会触发iframe中的A的点击事件。
地址:http://4.feifeipan59.sinaapp.com/blog/iframe_b.html
方法二
因为Iframe中的有一个链接A,而弹出层中也是链接A。应该是A链接的触发引起的,经过尝试,发现如果将A的href删除,那么也不会出发iframe中的点击。所以可以在点击链接的时候,删除A的href,然后再将href恢复成原本的值。
地址:http://4.feifeipan59.sinaapp.com/blog/iframe_c.html
方法三
尝试之后发现,如果iframe不是跨域的情况,那么就不会触发。
地址:http://4.feifeipan59.sinaapp.com/blog/iframe_d.html
后续:翻查过一些资料,但是没有找到这个问题的根本原因。不过以上的方法可以解决这个诡异的问题。
如果有了解的朋友,也欢迎一起讨论。
本文作者:小灰灰 转载请注明来自:携程UED
标签:
原文地址:http://www.cnblogs.com/mixzo/p/4213649.html