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了
相关推荐
-
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
公司WEB项目要求是必须兼容FF3,IE6/7/8.本文所述为IE6下的一个BUG. 项目里面写了一个自己封装的弹出层,原理是先动态添加一个遮罩层,再动态添加一个DIV(Table)层(做弹出层的PNG半透明边框效果),DIV里面动态添加一个IFrame,这个Iframe页面指向一个现存的HTM文件. 如果这个HTM文件中,包含文本输入框这样的一些表单元素,在IE6下就会出娄子了. 测试组的人说了,弹出层打开后,"经常"无法获取文本框的焦点,就是鼠标点文本框无法获取焦点并显示输入标记,
-
jQuery弹出遮罩层效果完整示例
本文实例讲述了jQuery弹出遮罩层效果.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head&
-
.net2.0+ Winform项目实现弹出容器层
适用于:.net2.0+ Winform项目 背景: 有时候我们需要开一个简单的窗口来做一些事,例如输入一些东西.点选一个item之类的,可能像这样: 完了返回原窗体并获取刚刚的输入,这样做并没有什么问题,但在几天前我突然产生了一些想法:为什么非得有板有眼的弹出一个窗体给用户呢,是不是可以在按钮附近迅速呈现一个层来做这些事呢,类似快捷菜单那样,用户高兴就在里面做一下该做的事,不高兴就在其它地方点一下它就消失,本来很轻便快捷的操作,DUANG~弹出一个窗体来会不会令用户心里咯噔一下呢,感受层面的事
-
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
本文实例讲述了jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能.分享给大家供大家参考,具体如下: 弹出层:两种方式 一是打开网页就自动弹出层 二是点击弹出 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="htt
-
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
本文实例讲述了JavaScript实现弹出DIV层同时页面背景渐变成半透明效果.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&
-
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
在使用JqGrid时,Table中最后一列是操作列,在操作列中每一行都一个操作按钮,该操作按钮类似下拉菜单,如下图: 在点击Table中[操作]一列时需要弹出一个Div层,该Div层中包含一堆按钮,用于对Table行进行操作,如下: 解决步骤如下: 1.首先,在colModel中的列上添加属性edittype:'select'和方法formatter:groupGrid.formatOptions,如下图: 方便复制,代码如下: {label:'操作',name: 'operations',in
-
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
本文实例讲述了JavaScript实现的弹出遮罩层特效.分享给大家供大家参考,具体如下: 这篇给大家分享一个简单的遮罩层特效,先上效果图. 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>查看,修改,删除</title> <script src="http://libs.baidu
-
jQuery点击按钮弹出遮罩层且内容居中特效
本文为大家分享了jQuery点击按钮弹出遮罩层且内容居中的特效,下面来看最终实现的效果: 由于是测试的程序,所以我未加关闭的按钮. 一.主体程序 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>弹出居中遮罩</title> <meta name="viewport" content="width=devi
-
弹出遮罩层后禁止滚动效果【实现代码】
方法一: $('.shade').bind( "touchmove", function (e) { e.preventDefault(); }); 方法二: $("body,.main").height($(window).height()).css({ "overflow-y": "hidden" }); 以上这篇弹出遮罩层后禁止滚动效果[实现代码]就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我
-
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
本文实例讲述了js实现文本框中输入文字页面中div层同步获取文本框内容的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o
随机推荐
- JSON字符串和对象之间的转换详解
- C#实现的简单随机数产生器功能示例
- 最棒的Angular2表格控件
- 对比分析Django的Q查询及AngularJS的Datatables分页插件
- apache服务出现Forbidden 403问题的解决方法总结
- 原生JavaScript制作微博发布面板效果
- Javascript 链式作用域详细介绍
- 动态表单验证的操作方法和TP框架里面的ajax表单验证
- PHP中使用正则表达式提取中文实现笔记
- AJAX 异步传输数据的问题
- linux awk时间计算脚本及awk命令详解
- nginx日志配置指令详解
- 基于jQuery实现仿51job城市选择功能实例代码
- android Bitmap圆角与倒影的具体实现代码
- python如何在列表、字典中筛选数据
- python中pika模块问题的深入探究
- mysql 5.7.25 安装配置方法图文教程
- 详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
- Vue实现购物车详情页面的方法
- 解决Vue2.0中使用less给元素添加背景图片出现的问题