IE6d出Iframe中文本框无法获得输入焦点的问题

IE6d出Iframe中文本框无法获得输入焦点的问题,第1张

概述公司WEB项目要求是必须兼容FF3,IE6/7/8。本文所述为IE6下的一个BUG.项目里面写了一个自己封装的d出层,原理是先动态添加一个遮罩层,再动态添加一个DIV(Table)层(做d出层的PNG半透明边框效果),DIV里面动态添加一个IFrame,这个Iframe页面指向一个现存的HTM文件。如果这个HTM文件中…

  公司WEB项目要求是必须兼容FF3,ie6/7/8。本文所述为ie6下的一个BUG.

  项目里面写了一个自己封装的d出层,原理是先动态添加一个遮罩层,再动态添加一个div(table)层(做d出层的PNG半透明边框效果),div里面动态添加一个iframe,这个iframe页面指向一个现存的htm文件。

  如果这个htm文件中,包含文本输入框这样的一些表单元素,在ie6下就会出娄子了。

  测试组的人说了,d出层打开后,“经常”无法获取文本框的焦点,就是鼠标点文本框无法获取焦点并显示输入标记,仿佛被什么透明层给盖住了。但有时是正常的,可谓间歇性精神障碍。有的机子上百分之五十的几率出现,有的机子上百分之三十左右的几率出现。

  少不了得做一番测试和分析了。

  经我在虚拟机ie6测试,也发现的确如测试组的人所说。

  我确信不可能有多余的覆盖层,因为除文本框之外,它周围的任何文字都可以正常的用鼠标选中,它周围的任何元素包括这个文本框本身也能响应onclick事件,只是无论怎么点,都无法获取输入焦点。(文本框没有设置Readonly或者Disabled)

  但是,某些小动作就可以让它们恢复正常,比如在这个iframe里右键刷新一下,或者是在这个iframe里按'TAB'键将焦点切换到任何一个文本框,这时,所有的文本框都可以用点击正常获得焦点了。还真是变态!

  咱总不能说这是ie6的BUG我们程序无法解决吧,领导是不听这话的。

  经过一番努力,还是有了解决方案。

  我发现,手动调用一下任何一个(通常是第一个)文本框的focus()方法就可以让所有的文本框恢复神智了。于是写了一个公共脚本,在iframe内的页面末尾,获取第一个文本框并调用其focus(),经测百来次,再没碰见无法获取焦点的情况,问题解决。

  来自:http://www.cnblogs.com/cuixiPing/

总结

以上是内存溢出为你收集整理的IE6d出Iframe中文本框无法获得输入焦点的问题全部内容,希望文章能够帮你解决IE6d出Iframe中文本框无法获得输入焦点的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1022928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存