搜尋
首頁web前端js教程在JavaScript中监听IME键盘输入事件_javascript技巧

输入法应当如何触发键盘事件呢?是每一下击键都触发一次事件,还是选词完毕才触发事件呢?整句输入又该如何触发事件呢?不同的操作系统和不同的浏览器对此有不同的看法。在最糟糕的情况下,用户使用输入法后浏览器就只触发一次 keydown ,之后就没有任何的键盘事件了。这对于 Suggestion 控件的实现来说是个大问题,因为 Suggestion 控件需要监听文本输入框的变化,而事件是最准确也最节省计算资源的做法,如果换成轮询的话性能就可能受到影响。
首先,要监听启用输入法后的击键事件应当使用 keydown 事件,这是信息最丰富的一个事件,因为在启用输入法后别的键盘事件可能不会被触发。其次,大多数操作系统和浏览器都实现了一个事实标准,就是在用户使用输入法输入时, keydown 事件传入的 keyCode 取值为 229 。然而触发 keydown 的频率是不确定的,有些情况下每一下击键都触发事件,有些情况下只有选词完毕才触发事件。这时候,如果我们还是要实时监控文本框的内容变化,就必须使用轮询了。

复制代码 代码如下:

var timer;
var imeKey = 229;
function keydownHandler (e) {
clearInterval(timer)
if (e.keyCode == imeKey) {
timer = setInterval(checkTextValue, 50);
} else {
checkTextValue();
}
}
function checkTextValue() {
/* handle input text change */
}

Opera 是一款有趣的浏览器,别人做的事情它都不做,别人都不做的事情它都喜欢做。例如说,它偏偏不支持 keyCode == 229 这个事实标准,而要使用 keyCode == 197 来表示输入法的使用。因此,你需要在上述代码的基础上做一下改良,如果监测到是 Opera 浏览器,就换一个 keyCode 常量来做比较。
var imeKey = (UA.Opera == 0) ? 229 : 197;
最后,还有一个更不受重视的浏览器叫做 Firefox for Mac 。估计是因为 Mac 版本对于 Mozilla 来说实在是太不重要了,所以很多 Windows 版本都没问题的地方 Mac 版本就会出小问题,例如说对上述事件的支持。 Firefox for Mac 不会出现 keyCode == 229 的情况,而且在输入法启用后只有第一下击键会触发 keydown 事件,因此只能在击键后一直使用轮询。
if (e.keyCode == imeKey || UA.Firefox > 0 && UA.OS == 'Macintosh') {
在添加了这两项改进后,实时监控文本框的变化就没有问题了,即使用户启用了输入法。完整的代码如下:
复制代码 代码如下:

var timer;
var imeKey = (UA.Opera == 0) ? 229 : 197;
function keydownHandler (e) {
clearInterval(timer)
if (e.keyCode == imeKey || UA.Firefox > 0 && UA.OS == 'Macintosh') {
timer = setInterval(checkTextValue, 50);
} else {
checkTextValue();
}
}
function checkTextValue() {
/* handle input text change */
}
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
键盘英文大小写怎么转换键盘英文大小写怎么转换Mar 17, 2023 pm 04:58 PM

键盘转换英文大小写的方法:1、按CapsLock键,指示灯亮起即可锁定大写状态,可用于连续输入若干个大写字母;若指示灯不亮,则为小写状态,可连续输入若干个小写字母。2、按住Shift键不放,再按字母键就是大写字母,松开Shift键就变回小写。

pgup键是什么意思pgup键是什么意思Feb 20, 2023 pm 04:19 PM

“PgUp”是“PageUp”键的缩写,是指上翻页键,主要作用是向上翻页,在文本编辑环境中,按下该键可将文档向前翻一页,如果已到文档顶部,则此键将无法工作;和pgup键相对的是pgdn键,意思是向下翻页,在文字编辑环境中,按该键可将文档向后翻一页,如果已经到达了文档的底部,则此键不能工作。

键盘删除键是哪个键盘删除键是哪个Mar 16, 2023 pm 04:48 PM

键盘删除键有两个:del(delete)键和backspace键。backspace又称退格键,这个按键可以把光标前面的文本内容删除掉;而delete键可以删除字符、文件和选中对象。每按一次del键,就会删除光标右侧的一个字符,光标右侧的字符向左移动一帧;当选中一个或多个文件/文件夹时,按Del键可快速删除;在某些应用程序中选中某个对象,按Del键可快速删除选中对象。

如何解决Windows 11键盘无法输入问题如何解决Windows 11键盘无法输入问题Dec 28, 2023 pm 05:59 PM

最近有的朋友遇到了win11键盘大不了字的问题,不知道按那个键可以恢复,其实这可能是由于我们的键盘被锁定了,只需要解锁就可以了。win11键盘打不了字按哪个键恢复1、首先,我们按下键盘上面的“左shift+左alt+numlock”组合键。2、然后,打开下图所示的菜单后,点击“是”按钮启用鼠标键。3、接着,点击打开任务栏的“开始菜单”或“搜索”图标。4、之后,在上方搜索搜索框输入“osk”打开屏幕键盘应用。5、最后,点击一下屏幕键盘右下角“numlock”键即可。Ps:如果你使用的是笔记本,那么

scroll是什么按键scroll是什么按键Feb 22, 2023 pm 02:29 PM

scroll是滚动锁定键,是计算机键盘上的功能键。scroll键常用于word和Excel中,在Scroll Lock关闭的状态下,使用翻页键时,单元格选定区域会随之发生移动;但是当按下了Scroll Lock键后,就不会移动选定的单元格。

win10键盘关机快捷键win10键盘关机快捷键Dec 23, 2023 pm 07:46 PM

最近很多的小伙伴在问win10键盘的关机快捷键在什么地方,有了这个快捷键以后的确方便了不少,我们有四种方式用键盘进行关机。那么该如何找呢?其实这个很好找的,下面小编带大家一起看看吧。win10键盘关机快捷键详细教程第一种:“Alt+F4”快捷键关机1、键盘按住“Alt+F4”键,调出“关机”界面,接着按回车键,即可关机。第二种:短按电源键关机1、长按电源键属于强制关机,对硬盘容易造成损害。win10系统只需按住电源键2秒以内,即可正常关机。第三种:“Win+X”快捷键关机1、同时按win+x。2

键盘上的数字键盘打不出来数字是怎么回事键盘上的数字键盘打不出来数字是怎么回事Mar 17, 2023 pm 05:32 PM

原因:1、没有开启“Num Lock”键,该键的作用就是切换锁定/解锁数字键输入;按一下“Num Lock”按键,指示灯亮起即可。2、无论是PS/2接口,还是USB接口的键盘,在使用的过程中,都会存在程序错乱的可能;只需拔掉键盘的接口,重启电脑即可。3、键盘损坏,更换键盘即可。

comma是什么键comma是什么键Mar 16, 2023 am 11:59 AM

comma全称“Command”,又称苹果键(Apple key),是Mac电脑上的一个特殊键,是苹果标准键盘最后一排左起第4个键和右侧option左边的按键;它的主要功能是用来替代空格键,并让用户可以使用快捷键来操作系统。随着苹果公司新一代的Mac电脑发布,Command键也被用于控制系统功能,比如复制、粘贴、打开程序等。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具