连续加班一个半月,项目昨天晚上12:08终于上线了;然后处理了一些新发现的bug;一直熬到凌晨五点半才吃点宵夜回家睡觉。然后下午这会过来上班;回想昨晚的场景,真的跟打仗一样。。然后发现了一个比较有意思的bug;称之为“事件穿透”!,问题只在纯IE8浏览器下重现(IE9,10,11的的IE8模式切换不重新)。

场景大概是这样的;首页有一个浮动的登录框;然后页头有一个导航(有链接),下面还有一个轮播图,而且有链接;如下图所示:

wKioL1YLjmuw1h1IAAERsgFGahw687.jpg

wKiom1YLjmCTlSTPAABLrhHx2z8232.jpg

    然后,IE8下,当你准备在输入框输入时,忽然发现点了一下,页面居然跳转了;然后就开始定位分析。

跳转的url,是轮播图的url,或者时导航的url。由于我们使用了的是开源的layer.ui组件。

网址:http://layer.layui.com/api.html 分析了弹窗的z-index,zoom,定位等等。搞了好久没有找到方案。

对比一下chrome和IE8的样式。


IE8:

wKiom1YLu1OSN5OaAAImczt6k7M077.jpg

chrome下:


wKioL1YLvCfRqe5-AAGdlOzVuBQ690.jpg

发现了背景好像不太一样;然后想了一下,居然事件穿透了,name如果给input加一个背景色或者背景图片是不是就可以了。

wKioL1YLvHGjCynEAAImHS8kOzc733.jpg


试了一下果真,如果给input加一个背景色,问题就解决了。

试了一下,如果背景色是一张半透明的图片,也是可以的。

写篇博客记录一下,希望对遇到同样问题的“道友”有所帮助。