IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
公司WEB项目要求是必须兼容FF3,IE6/7/8。本文所述为IE6下的一个BUG.
项目里面写了一个自己封装的弹出层,原理是先动态添加一个遮罩层,再动态添加一个DIV(Table)层(做弹出层的PNG半透明边框效果),DIV里面动态添加一个IFrame,这个Iframe页面指向一个现存的HTM文件。
如果这个HTM文件中,包含文本输入框这样的一些表单元素,在IE6下就会出娄子了。
测试组的人说了,弹出层打开后,“经常”无法获取文本框的焦点,就是鼠标点文本框无法获取焦点并显示输入标记,仿佛被什么透明层给盖住了。但有时是正常的,可谓间歇性精神障碍。有的机子上百分之五十的几率出现,有的机子上百分之三十左右的几率出现。
少不了得做一番测试和分析了。
经我在虚拟机IE6测试,也发现的确如测试组的人所说。
我确信不可能有多余的覆盖层,因为除文本框之外,它周围的任何文字都可以正常的用鼠标选中,它周围的任何元素包括这个文本框本身也能响应onclick事件,只是无论怎么点,都无法获取输入焦点。(文本框没有设置readOnly或者disabled)
但是,某些小动作就可以让它们恢复正常,比如在这个Iframe里右键刷新一下,或者是在这个Iframe里按’TAB’键将焦点切换到任何一个文本框,这时,所有的文本框都可以用点击正常获得焦点了。还真是变态!
咱总不能说这是IE6的BUG我们程序无法解决吧,领导是不听这话的。
经过一番努力,还是有了解决方案。
我发现,手动调用一下任何一个(通常是第一个)文本框的focus()方法就可以让所有的文本框恢复神智了。于是写了一个公共脚本,在Iframe内的页面末尾,获取第一个文本框并调用其focus(),经测百来次,再没碰见无法获取焦点的情况,问题解决。
下面是网友回复:
弹出的那个标签是a /标签吧?
换成span /标签似乎就OK了
相关内容
-
作曲大师怎么输入歌词?作曲大师添加歌词方法一览
作曲大师怎么输入歌词?作曲大师添加歌词方法一览,作曲大师,输...
-
JS实现设置ff与ie元素绝对位置的方法
JS实现设置ff与ie元素绝对位置的方法,元素,位置,方法,设置,窗...
-
让IE6支持HTML5元素的方法
让IE6支持HTML5元素的方法,方法,元素,支持,文件,网站,脚本,前...
-
IE6图片元素img下出现多余空白的问题
IE6图片元素img下出现多余空白的问题,元素,方法,解决方法,对...
-
微信搜狗输入法怎么不能用?微信切换搜狗输入法显
微信搜狗输入法怎么不能用?微信切换搜狗输入法显示null解决方...
-
微信输入法怎么设置成搜狗-微信输入法怎么设置
微信输入法怎么设置成搜狗-微信输入法怎么设置为搜狗,微信输...
-
WIN7操作系统下做好IE6,IE7的兼容性测试
WIN7操作系统下做好IE6,IE7的兼容性测试,兼容性测试,版本,安...
-
IE7.0以下版本列表li中的元素错位一个上一个下
IE7.0以下版本列表li中的元素错位一个上一个下的解决方法,元...
-
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7,弹出层,兼...
-
固定位置显示弹出层(兼容IE6,IE8,FF)
固定位置显示弹出层(兼容IE6,IE8,FF),兼容,显示,弹出层,位置,...
-
windows11怎么关闭输入体验 windows11老是弹出
windows11怎么关闭输入体验 windows11老是弹出输入体验解决...
-
windows10输入法没了打不了字怎么办?
windows10输入法没了打不了字怎么办?,打不了字,输入法没了,设...
-
如何使用讯飞输入法发布表情 使用讯飞输入法发
如何使用讯飞输入法发布表情 使用讯飞输入法发布表情的两个...
-
如何使用陈桥拼音输入法进行快速打字 陈桥拼音
如何使用陈桥拼音输入法进行快速打字 陈桥拼音输入法使用方...
-
如何使用驱动精灵测试硬盘 驱动精灵测试硬盘的
如何使用驱动精灵测试硬盘 驱动精灵测试硬盘的教程,硬盘,测试...