ios端的Safari浏览器中,输入框加入readonly之后,点击还能获取焦点的解决办法。...

  事情的起因是,新增一个需求,原来的输入框点击不要出现系统自带的键盘,出现我们模拟的键盘。如果是一次性开发的话, 我肯定把这个输入框写成一个div或者其他的元素,然后点击之后出现我们的模拟键盘,这样就不会遇到input输入框的问题了。但是因为第一版的时候,就是调起的系统的输入法,所以这里就写的是一个input,所以我就在这个input中增加了一个readonly属性。结果测试的时候发现,在ios端有小问题,就是虽然没有弹起系统的键盘,但是还是能获取焦点,而且下面出现了一小条,左面是一个上下的箭头,右面是完成(Done)按钮。一般其实也没什么的,但是我们的键盘是用的fixed定位写的,这样会遮住其中的一部分,所以,就需要解决这个问题,两种私聊。

  一种是当出现这个的时候,我们模拟的键盘重新定位,这种想想就觉得麻烦。

  另外的一种就是给ios的浏览器去掉这个bug。废话不多说,先看代码

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
 7         
 8     </head>
 9     <body>
10         <h2>测试ios浏览器下 input输入框设置了readonly之后,点击输入框还是弹出一小块区域</h2>
11         <h6 style="color: royalblue;">左面是一个上下的箭头,右边是是一个"完成(Done)"</h6>
12         <input type="text" readonly="readonly"  name="" id="" value="啥也没有" />
13         <p>第一个,这个什么属性也没加,只有一个readonly</p>
14         <input type="text" readonly="readonly" unselectable="on" name="" id="" value="只有unselectable='on'" />
15         <p>第二个,加入了一个'unselectable="on"'这个属性,发现还是不行的</p>
16         <input type="text" readonly="readonly" unselectable="on" onfocus="this.blur()" name="" id="" value="这个都有" />
17         <p>第三个,把'unselectable="on"'和'onfocus="this.blur()"'这个属性都加上了,这样就可以了。页面终于安静了!!!</p>
18         <button>点我</button>
19     </body>
20     <script type="text/javascript">
21         var but = document.getElementsByTagName("button")[0];
22         but.onclick = function(){
23             document.getElementsByTagName("input")[2].value = 111111111;
24         }
25         document.getElementsByTagName("input")[2].onclick = function (){
26             alert(1111111);
27         }
28     </script>
29 </html>

  这里就是做个记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值