输入法下keyup的失效的解决方案

zaypm8097

zaypm8097

2016-02-19 14:11

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享输入法下keyup的失效的解决方案,希望可以对大家能有小小的帮助。
网页制作Webjx文章简介:在某些情况下,比如自动补全(autocomplete)的输入框中,需要使用keyup事件来监听键盘的输入以迅速作出回应。关键在于keyup,如果世界是美好的,那么就不会有这篇blog.可是世界是不美好的。我们活在中文世界,我们要用输入法。在输入法开启的情况下,您会碰到不美
  
  在某些情况下,比如自动补全(autocomplete)的输入框中,需要使用keyup事件来监听键盘的输入以迅速作出回应。
  
  关键在于keyup,如果世界是美好的,那么就不会有这篇blog.可是……
  
  世界是不美好的。我们活在中文世界,我们要用输入法。在输入法开启的情况下,您会碰到不美好的事情:keyup失效。对于您绑定到keyup的任何回调函数,除非您把输入法切换回英文状态,否则它会无动于衷。如果能称之为bug,我会很高兴,因为bug会有修复的可能,如果是特征(feature),那么,我只好叹息一下。
  
  问题
  
  在开启输入法的情况下,三个浏览器的具体问题如下:
  
  IE:触发keydown和keyup,不触发keypress.能够获得输入值。
  
  Firefox:触发keydown和keypress,不触发keyup.输入值未能获得。在回车后会触发keyup,可获得输入值。
  
  Opera:keydown,keypress和keyup都不触发,输入值也未能获。
  
  (如果您能帮我试用一下Safari,我会很高兴并谢谢您。这里有一个测试页面)
  
  解决方案
  
  总结出以上问题,没有兴奋反而陷入绝望,因为没有google出解决方案(是的,对于拉丁语系的老外来说,不会存在输入法)。但是,wait,谷歌搜索的自动补全不是工作得好好的吗?于是研究一下这个http://www.google.cn/ac.js。嘿嘿,虽然混淆得还可以,但还是可以发现蛛丝马脚的。它使用一个计时器,当输入框处于聚焦(focus)状态时,每10秒执行一次回调函数。
  
  虽然挺耗资源(所以建议在输入框失焦(blur)时,一定要清除这个计时器),但也只能如此了。作前端开发的,不仅要与语言(JavaScript,CSS,HTML)斗,还要与浏览器斗,其乐无穷也。
  
展开更多 50%)
分享

猜你喜欢

输入法下keyup失效的解决方案

Web开发
输入法下keyup失效的解决方案

输入法下keyup的失效的解决方案

Web开发
输入法下keyup的失效的解决方案

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

桌面输入法图标"失踪"的有效解决方案

电脑入门
桌面输入法图标"失踪"的有效解决方案

Windows 8 系统自带微软拼音简捷输入法无法删除的解决方案

电脑入门
Windows 8 系统自带微软拼音简捷输入法无法删除的解决方案

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

linux下输入法的安装

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
linux下输入法的安装

输入法不能切换 解决输入法不能切换方法

电脑入门
输入法不能切换 解决输入法不能切换方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

利用Visual C#实现任务栏通知窗口

利用Visual C#实现任务栏通知窗口

技术分析——DWR让AJAX如此简单

技术分析——DWR让AJAX如此简单
下拉加载更多内容 ↓