찾다
웹 프론트엔드JS 튜토리얼JavaScript_javascript 팁에서 IME 키보드 입력 이벤트 듣기

입력 방법은 키보드 이벤트를 어떻게 트리거해야 합니까? 모든 키 입력에 대해 이벤트가 트리거됩니까, 아니면 단어 선택이 완료된 후에만 이벤트가 트리거됩니까? 전체 문장 입력이 어떻게 이벤트를 트리거할 수 있나요? 운영체제와 브라우저마다 이에 대해 서로 다른 견해를 가지고 있습니다. 최악의 경우, 브라우저는 사용자가 입력 방법을 사용한 후 한 번만 keydown을 트리거하고 키보드 이벤트가 없습니다. 제안 컨트롤은 텍스트 입력 상자의 변경 사항을 모니터링해야 하며 이벤트는 폴링을 사용하는 경우 가장 정확하고 계산적으로 효율적인 방법이므로 제안 컨트롤 구현에 큰 문제가 됩니다.
우선 입력 방법을 활성화한 후 키 입력 이벤트를 모니터링하려면 keydown 이벤트를 사용해야 합니다. 입력 방법이 활성화된 후에는 다른 키보드 이벤트가 트리거되지 않을 수 있기 때문입니다. 둘째, 대부분의 운영 체제와 브라우저는 사실상의 표준을 구현했습니다. 즉, 사용자가 입력 방법을 사용하여 입력할 때 keydown 이벤트에 전달되는 keyCode 값은 229입니다. 그러나 키 누르기를 실행하는 빈도는 확실하지 않습니다. 어떤 경우에는 키를 누를 때마다 이벤트가 실행되고, 다른 경우에는 단어 선택이 완료된 후에만 이벤트가 실행됩니다. 이때 텍스트 상자의 내용 변경을 실시간으로 모니터링하려면 폴링을 사용해야 합니다.

코드 복사 코드는 다음과 같습니다.

var 타이머
var imeKey = 229;
function keydownHandler (e) {
clearInterval(timer)
if (e.keyCode == imeKey) {
timer = setInterval(checkTextValue, 50)
} else {
checkTextValue ();
}
}
function checkTextValue() {
/* 입력 텍스트 변경 처리 */
}

Opera는 재미있습니다. browser 남들이 하는 일은 아무것도 하지 않고, 남들이 하지 않는 일을 하는 것을 좋아합니다. 예를 들어, keyCode == 229라는 사실상의 표준을 지원하지 않지만, keyCode == 197을 사용하여 입력 방법의 사용을 나타냅니다. 따라서 위의 코드를 기반으로 몇 가지 개선이 필요합니다. Opera 브라우저가 감지되면 비교를 위해 keyCode 상수를 변경합니다.
var imeKey = (UA.Opera == 0) ? 229 : 197;
마지막으로 Mac용 Firefox라는 브라우저가 있습니다. Mac 버전은 Mozilla에게 너무 중요하지 않은 것으로 추정되므로 많은 Windows 버전이 문제가 없는 Mac 버전에서는 위 이벤트에 대한 지원 등 사소한 문제가 있을 것입니다. Mac용 Firefox에는 keyCode == 229가 없으며 입력 방법이 활성화된 후 첫 번째 키 입력만 keydown 이벤트를 트리거하므로 키 입력 후에만 폴링을 사용할 수 있습니다.
if (e.keyCode == imeKey || UA.Firefox > 0 && UA.OS == 'Macintosh') {
이 두 가지 개선 사항을 추가한 후에는 텍스트 상자 변경 사항에 대한 실시간 모니터링이 더 이상 지원되지 않습니다. 가능 사용자가 입력 방법을 활성화한 경우에도 문제가 발생합니다. 전체 코드는 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

var 타이머;
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( ) {
/* 입력 텍스트 변경 처리 */
}

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구