m站页面input keyup兼容性

我们经常遇到字数统计、搜索请求的业务需求,一般需要监听input的keyup事件,paste事件,

在手机上也一样。比如说我们有一个id为J_input的input用来接收用户的输入,

一个id为J_show的p用来实时显示用户的输入状态。js代码如下:

var dInput = document.getElementById(‘J_input‘),
    dShow = document.getElementById(‘J_show‘),
    back = function(e){
        e.stopPropagation();

        dShow.innerText = dInput.value;
    };

dInput.addEventListener(‘keyup‘, back, false);
dInput.addEventListener(‘paste‘, back, false);

完整的html代码为:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>input keyup事件兼容性</title>
    <style>
    *{margin:0; padding:0;}
    span strong{color:#FA0; font-family:Constantia, Georgia; font-size:32px;}
    </style>
</head>
<body>
请这里输入:<input type="text" id="J_input" /><br/><br/>
您输入的是:<span id="J_show">...</span>

<script>
var dInput = document.getElementById(‘J_input‘),
    dShow = document.getElementById(‘J_show‘),
    back = function(e){
        e.stopPropagation();

        var html = ‘‘,
            val = dInput.value,
            len = val.length;

        for(var i = 0; i < len; i++){
            var str = val[i];

            if(/^\d$/.test(val[i])){
                str = ‘<strong>‘+ str +‘</strong>‘;
            }

            html += str;
        }

        dShow.innerHTML = html;
    };

dInput.addEventListener(‘keyup‘, back, false);
dInput.addEventListener(‘paste‘, back, false);
</script>
</body>
</html>

now, 让我们进入今天的终点,手机端有些输入法(比如Anroid的百度输入法)对keyup没有响应,或是对中文输入无响应,这个时候我们需要添加oninput事件(哈哈,没听说过吧),

这个事件类型,IE是不支持的,但是就像你所想的,IE总是有自己的一套,IE下对应的是事件是propertychange,意思就是属性值变化事件(value也是dom元素的一个属性啊)

如此为了兼容手机端的各种不友好的输入法,我们在原先keyup,paste的基础上,再新增input和propertychange事件就好了;

dInput.addEventListener(‘keyup‘, back, false);
dInput.addEventListener(‘paste‘, back, false);
dInput.addEventListener(‘input‘, back, false);
dInput.addEventListener(‘propertychange‘, back, false);

时间: 2024-10-10 14:04:22

m站页面input keyup兼容性的相关文章

Selenium2学习-024-WebUI自动化实战实例-022-网站不同分辨率下页面样式展示兼容性问题解决方案 -- 设置浏览器显示区域大小(无人值守,节约测试成本的福音,BOSS 最爱)

在 Web UI 自动化测试的过程中,通常会测试页面在不同分辨率下的显示效果,即在不同大小的显示器上全屏浏览器后的页面展示,此种测试方法需要购置不同大小的显示器,或者频繁的设置屏幕分辨率,不仅浪费了大量的金钱,同时也需要有人值守,从而使测试变成了半自动化,背离了自动化测试的初衷,也在一定程度上困扰了一定的自动化测试人员. 其实,不同分辨率下的测试,在一定程度上可以看做是浏览器窗口最大化后,浏览器可显示区域的页面样式兼容性测试.此文通过设置浏览器页面显示区域大小,从而摆脱上述种种问题的束缚.只需要

Android input输入框 移动页面input手机键盘中的“搜索”按键

动页面input手机键盘中的“搜索”按键 满足以下几点机即可: input type="search"    放到form标签中    使用action属性 <form action="." > <input type='search' /> </form> 注意: 如果只使用input type="search",而不放到form标签中,则显示“换行”:如果放到form中,但是使用type="tex

微信的分享功能(针对web手机站页面进行的分享功能)

把这段js粘贴进,设置可以分享的页面,当微信打开,即可微信进行分享各个圈 $(function(){ var lujing=$("#logimg").attr("src");  //分享中带有的图片 var url=window.location.href;         //分享页的地址 var title=document.title;             //分享内容的标题 weixin("http://m.e-iot.com/images/b

HTML5做手机站页面字体显示很小的解决方法

原文:HTML5做手机站页面字体显示很小的解决方法 HTML5做手机站需要加上一部分代码,不然字体会显示很小的,经历了很久的不解才发现的,希望给大家一些帮助 <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org

WebCollector下载整站页面(JAVA网络爬虫)

很多业务需要下载整站页面(有时为多个站点),将页面按照网站拓扑结构存放. 下面给出用JAVA爬虫WebCollector(2.09版本以上)爬取整站网页并按照网页拓扑结构存储到本地的代码. 代码中的抽取器可以作为一个插件复用. WebCollector的jar包可到官网下载:WebCollector官网.进入官网后下载webcollector-版本号-bin.zip,解压得到所需jar包. import cn.edu.hfut.dmic.webcollector.crawler.MultiExt

网御星云WAF的配置页面与浏览器兼容性问题

有一旧的WAF设备要用起来,同事已经提前测试出了管理口IP和账号密码,机器上架后登录控制台,新建"真实服务器"填了IP后点击"提交"按钮没有任何反应.试了很多次换不同IP都没反应,而且"应用防护"几个选项都显示空白,本以为是该设备恢复了出厂设置,加之会不会是授权过期导致的. 再请同事通过远程连过来检查,测试一番也是同样情况.只是通过其它操作设置我看到了以前配置的服务器IP,虽然也是点击"提交"没有反应,但是确实设置的IP在列表

HTML`CSS_网站页面不同浏览器兼容性问题解决

目前,最为流行的浏览器共有五个:分别是ie,Edge浏览器(属于微软),火狐,谷歌(chrome)Safari和Opera五大浏览器. Trident内核:IE ,360,,猎豹,百度: Gecko内核:火狐----------->这个浏览器内核是开源的浏览器内核,插件非常多,-------------->缺点:打开速度慢(加载flash插件)<-----额外介绍----->. Presto内核:Opera7及以上版本 Webkit:遨游,苹果 ,symbian:Safari.Ch

input keyup的时候实现内容过滤

当在文本框中输入关键字,就会搜索出包含关键字的数据 实现: 只需要一个内容过滤即可 <body> <input type="text" id="searchbox"/> <table> <tbody> <tr> <td>aaa</td> <td>bbb</td> </tr> <tr> <td>bbb</td> &

IOS系统兼容input keyup事件

最近在做移动端模糊搜索功能,js监听input的keyup事件,在chrom模拟器和android手机环境运行都没有问题,到了ios手机却出现bug,没法实现功能: 查了好一会资料,发现keyup事件在ios系统下存在不兼容问题,解决的方法是通过 html5的 oninput事件来实现,代码如下: <input id="input" type="text" /> document.querySelector('#input').addEventListe