当前位置: 首页 > 编程笔记 >

360浏览器文本框获得焦点后被android软键盘遮罩该怎么办

国俊艾
2023-03-14
本文向大家介绍360浏览器文本框获得焦点后被android软键盘遮罩该怎么办,包括了360浏览器文本框获得焦点后被android软键盘遮罩该怎么办的使用技巧和注意事项,需要的朋友参考一下

场景是这样的,站点上筛选按钮点击后弹出层(fixed),当输入框获取焦点以后弹出系统自带的软键盘,在android上十款浏览器挨个测试比对,发现在360浏览器弹出键盘以后获取焦点的文本框被软键盘覆盖了。

截图如下

 

(未获取软键盘焦点的情况)              

(chrome浏览器调起软键盘的情况)           

(360浏览器调起软键盘情况)

      那么问题来了,浏览器的软键盘显示出来又哪几种情况呢?英文   中文(网上找的)

      经过简单的了解,大概分析了一下软键盘在浏览器上弹出应该包含软键盘占用主activity空间,让主activity重新布局 和 不调整窗口大小浮在上面  这两种方式(哈哈这是我yy的)

360应该是使用后者,其他的也许是使用前者。

既然问题出现了,那就要想办法解决,于是经过简单的推敲,基本上可以得出(存在不占用主窗口空间的软键盘技术) 1、当input获取焦点的时候,2、软键盘会弹出,3、fixed的层需要向上移动一下,4、成功输入;5、当input blur或是键盘点击回车以后,fixed还原位置(这里要庆幸360没有默认带旋转屏幕跟随转动,不然还要麻烦一点)

既然分析完毕就要写代码了

1.添加识别浏览器代码

var isSpecialBrowser = navigator.userAgent.match(/360 Aphone.*\(([\d.]+)\)$/i)//360等部分软键盘采用的是软键盘不占用主窗口空间造成,吸底的 input获取焦点的时候被遮罩

2.处理事件

$(document)
 .on('keydown keyup', Element,function(ev) {
   if(code == && isSpecialBrowser) {
     DOM.css('bottom', -);
    }
   }
  })
  .on('focus', Element,function() {
   if(isSpecialBrowser) {
    DOM.css('bottom', -);
   }
  })
  .on('blur', Element,function() {
   if(isSpecialBrowser) {
    DOM.css('bottom', -);
   }
  });

好了,问题解决了

但是会又问题,就是主动点击键盘收起按钮时没办法获取任何keycode和对应的事件,因此这里会有问题。

文本框获得焦点、失去焦点调用JavaScript

代码如下:

<%@ Page Language="VB" CodeFile="focus.aspx.vb" Inherits="focus" %> 
<!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 runat="server"> 
<title>无标题页</title> 
<script language="javascript"> 
function text1_onmouseover(it) 
{ 
it.focus(); 
it.select(); 
it.style.backgroundColor="red"; 
} 
function text1_onmouseout(it) 
{ 
it.onblur; 
it.style.backgroundColor="white"; 
} 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:TextBox ID="TextBox1" onmouseover="return text1_onmouseover(this);" onblur="text1_onmouseout(this)" runat="server"></asp:TextBox> 
</div> 
</form> 
</body> 
</html> 
 类似资料:
  • 本文向大家介绍Android 设置Edittext获取焦点并弹出软键盘,包括了Android 设置Edittext获取焦点并弹出软键盘的使用技巧和注意事项,需要的朋友参考一下 Android 设置Edittext获取焦点并弹出软键盘 ps:android页面进入edittext自动获取焦点,弹出软键盘解决方法 在edittext的父布局中加入上面2个属性 以上就是本文的全部内容,希望本文的内容对大

  • 本文向大家介绍Android EditText被软键盘遮盖的处理方法,包括了Android EditText被软键盘遮盖的处理方法的使用技巧和注意事项,需要的朋友参考一下 这两天android app新增了透明栏效果,结果发现键盘弹起后会遮盖屏幕底部的EditText,没有像想象中的调整窗口大小,并滚动ScrollView,将EditText显示在键盘上方。之前也遇到过类似问题,所以解决后就干脆写

  • 问题内容: 我在浏览器选项卡中运行了一个applet。当我在同一浏览器中切换到另一个选项卡,或者在完全使用ALT- TAB切换到另一个应用程序时,小程序失去了焦点。当我返回浏览器选项卡时,小程序不再获得焦点。有没有一种好的方法可以做到这一点? 我认为这是需要的JavaScript更改,而不是applet本身?也许是一些onFocus处理程序?如果相关,我们的applet是使用HTML 标记创建的。

  • Android:show软键盘在点击布局底部实现的特定Edittext后自动覆盖Edittext字段的一半。当请求焦点在EditText软键盘上打开时,它将向上移动布局,但会覆盖EditText字段的一半。

  • uni写h5,输入框聚焦时虚拟键盘遮住了输入框 你们是怎么解决的啊

  • 问题内容: 我想通过拦截文档对象(而不是accesskey属性)的keypress事件处理程序,来为Web应用程序中的几个页面添加对键盘快捷键的支持。 问题是,每个浏览器都有自己的组合键,因此不可能拿出一套键盘组合可在所有网络浏览器的工作,但一致的。(例如,它会是愚蠢的,如果在保存快捷为++ ,而一个要删除的是+ 。) 因此,我认为在我的几个页面中完全覆盖浏览器快捷方式会更简单。 撇开所有不利因素