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(),经测百来次,再没碰见无法获取焦点的情况,问题解决。 来自:http://www.cnblogs.com/cuixiping/ (编辑:衢州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 国家新型工业化产业示范基地公布 数据中心被列入国家加快建
- 重磅 | “抗击疫情,共生共赢”合思伙伴必修课即将开课!
- 华为终端云服务启动DigiX安全攻防大赛,解锁220万元奖金池
- 腾讯云数据库 MySQL 8.0 正式上线,性能全面超越官方版本
- 名头最响的一位美国大导演——斯皮尔伯格 马云在纽约于他见
- 新一代国际视频编解码标准正式出炉,腾讯超100项提案获标准
- A+轮获投近亿元 这家科技公司两年前转型为边缘计算云服务商
- Testin云测总裁徐琨:从云测试到AI数据标注,专业是核心要义
- 云服务负责人履新IBM CEO 能否抓住疫情危机催化的云服务普及
- 苹果发布iOS 10.3.3系统的第三个公测版:修复系统Bug

