• IE6IE9兼容性问题列表及解决办法_补充之五:在IE9下, disabled的文本框内容被选中后,其他控件无法获得焦点问题


    先看一段Htm代码,里面一个disabled的文本框,一个普通可写的文本框,还有一个按钮,非常简单,代码如下:

    <!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>
        <title></title>
    </head>
    <body>
      Disabled Input: <input type="text" id="b1" value="asldfjasldfa" disabled="disabled" ></input><br />
      Non-Disabled Input: <input type="text" id="b2" value="asldfjasldfa"></input>
      <input type="button" id="butt1" name="butt" value="关闭" onclick="window.close()" />
    </body>
    </html>

    运行出来的页面如下:


    通过实际测试发现,在IE9下,鼠标一旦进入disabled的文本框,比如在里面拖拽鼠标并选中一些内容,然后再想把鼠标挪开,比如挪到第二个文本框中,或者比如点击以下关闭按钮,就会发现,办不到了,似乎disabled文本框的焦点永远无法离开了,其他文本框或者按钮永远获得不到焦点,除非用Tab键切换,或者干脆切换到其他软件界面后再转回来,这时别的控件才可以被点中。

    经过测试,在IE6, 7, 8, 10上都无此问题。 

    经过咨询获悉,发现这确实是IE9的一个bug。

    如何解决呢?下面是我们摸索出来的几个方法,抛砖引玉一下:

    1.升级到IE10。

    升级到IE10,自然就解决了这个问题。因为既然IE10既然已经解决这个问题了,那么IE9就应该不会再为这个bug专门发布补丁修复程序了。


    2.鼠标双击一下页面其他部分,就可以把焦点从disabled文本框中解脱出来了。


    3.写脚本禁止disabled文本框被选择也是一个方法,但前提是文本框既然已经disabled了,就不接受任何js事件了,那么,只能在其父元素上搞这个动作了,比如在disabled文本框外再套个东东,在那上面绑定js事件,禁止此区域被鼠标进入或选择,这样,相应的,其内部的disabled文本框也就不能被选择了,那么,这个文本框焦点无法离开的问题也就不存在了。

     
    不知道诸位是否遇到过这个问题,是否有更好的解决方法? 

    作者:BobLiu
    邮箱:lzd_ren@hotmail.com
    出处:http://www.cnblogs.com/liuzhendong
    本文版权归作者所有,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    python大战机器学习——聚类和EM算法
    python大战机器学习——数据降维
    机器学习(西瓜书)——绪论
    算法设计与分析-HomeWork
    SocLib的安装
    CSS的IE6、IE7、FF兼容性写法
    CSS content内容生成技术以及应用
    js javascript:void(0) 真正含义
    Google Chrome七大新特性
    CSS中文字体对照表
  • 原文地址:https://www.cnblogs.com/liuzhendong/p/2732234.html
Copyright © 2020-2023  润新知