数码资讯
javascript关键事件(与所有浏览器兼容)
第一部分:浏览器的关键事件 用js实现键盘记录,我们应该关注三种按键事件,即Keydown、按键和KeyUp,对应三个事件处理时,分别按下键和onKeyUp。一个典型的按钮产生这三个事件,反过来KeyDown,KeyUp按键,然后当按钮被释放。 这3种事件类型,keydown和Keyup都低,和按键
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
第一部分:浏览器的关键事件
用js实现键盘记录,我们应该关注三种按键事件,即Keydown、按键和KeyUp,对应三个事件处理时,分别按下键和onKeyUp。一个典型的按钮产生这三个事件,反过来KeyDown,KeyUp按键,然后当按钮被释放。
这3种事件类型,keydown和Keyup都低,和按键是比较先进的。所谓的先进水平,当用户按下Shift + 1,按键的按键事件分析并返回一个可打印字符,而keydown和Keyup只记录转移+ 1。{ 1 }
但按键只能对一些可打印字符是有效的,但功能按钮,如F1-F12,退格,回车,逃跑,PageUP,键和箭头的方向,不会有按键事件,但Keydown和KeyUp事件可以生成。在FireFox,然而,功能键可以产生KeyPress事件。
这是通过KeyDown,按键事件对象,和KeyUp事件处理有一些通用的性能。如果ALT、Ctrl或Shift是一起按下按钮,通过属性altkey表示,ctrlkey和大写键事件。这些属性在Firefox和IE.中是通用的。
第二部分:兼容浏览器
所有涉及浏览器的JS都应该考虑浏览器的兼容性。
目前,主要的浏览器主要基于IE和Mozilla两类,傲游基于IE内核,Firefox和Opera基于Mozilla内核。
2.1事件的初始化
首先要理解的是如何初始化事件,基本语句如下所示:
功能(keydown){ }
document.onkeydown = KeyDown;
当浏览器读取语句,无论哪个键被按下,KeyDown()函数将被调用。
2.2 Firefox和Opera的实现
像Firefox和Opera这样的程序比IE更麻烦,所以先在这里描述一下。
KeyDown()函数有一个隐藏的变量,一般来说,我们用字母E来表示这个变量。
功能keydown(E)
变量E表示击键事件的发生,寻找按下哪个键并使用哪个属性:
E.它
将给出索引的索引值,并将索引值转换为键的字母或数字值。我们需要使用静态函数String.fromCharCode()。
String.fromCharCode(e.which)
把上面的语句放在一起,我们就可以得到Firefox中按下的键:
复制代码代码如下所示:
功能keydown(e){
VaR密码=哪;
无功realkey = String.fromCharCode(e.which);
警报(关键代码:+密码+ 字:+ realkey);
}
document.onkeydown = KeyDown;
2.3 IE的实现
ie程序不需要e变量。而大肠,window.event.keycode用于转化的关键指标的关键值。该方法类似于String.fromCharCode(事件。密码)。程序如下:
复制代码代码如下所示:
功能KeyDown(){
VaR密码=的情况下;
无功realkey = String.fromCharCode(事件。密码);
警报(关键代码:+密码+ 字:+ realkey);
}
document.onkeydown = KeyDown;
2.4判断浏览器的类型
在浏览器中的上述理解是如何实现的关键事件对象的方法,则需要判断浏览器的类型,这种方法有很多,容易理解,有聪明的方法说:一般的做法是使用导航对象的修改属性,当然,也可以使用UserAgent属性来修改可以判断浏览器类型,IE和傲游应用程序的名字微软Internet Explorer,Firefox,Netscape歌剧修改,所以一个比较简单的函数代码:
复制代码代码如下所示:
功能键抬起(e){
如果(navigator.appname = =微软Internet Explorer)
{
VaR密码=的情况下;
无功realkey = String.fromCharCode(事件。密码);
}其他
{
VaR密码=哪;
无功realkey = String.fromCharCode(e.which);
}
警报(关键代码:+密码+ 字:+ realkey);
}
document.onkeyup = KeyUp;
更简洁的方法是{ 2 }:
复制代码代码如下所示:
功能键抬起(e){
无功currkey = 0,E = E | |事件;
currkey =能| | e.which | | e.charcode;
VaR的控制台= String.fromCharCode(currkey);
警报(关键代码:+ currkey +字符:+键名);
}
document.onkeyup = KeyUp;
上面的方法更巧妙,更容易解释。
首先,E = E | |事件;本代码为浏览器事件对象的兼容性。JS代码的含义是,如果隐藏的变量存在于Firefox或Opera,然后E | |事件返回如果IE是隐藏的,是不存在,则返回的事件。
其次,currkey =能| | e.which | | e.charcode;这是兼容的浏览器按钮事件对象代码关键属性(见第三节),如伊江、键码和Firefox的唯一属性,在它和字符码特性,键码和属性在歌剧。
上面的代码与浏览器兼容的,的KeyUp事件对象,简单的弹出按钮的代码和一个关键人物,但问题是,当你按下按钮,按键的字符都是大写,按下Shift键,性格很古怪,所以你需要优化你的代码。
第三部分:代码的实现与优化。
3.1个关键事件的密钥代码和字符代码
击键和字符码在浏览器之间缺乏可移植性。为不同的浏览器和不同的情况下,有不同的方式来存储键码和字符代码。
在伊江,只有一个键码属性,和它的解释取决于事件的类型。Keydown,键位商店的关键代码,并对按键事件,键位商店是一个字符的编码,没有和伊江字符码属性,所以它与字符码属性总是不确定的。
在Firefox中,密码一直是0,当时间keydown / KEYUP,字符码= 0,这是关键的代码。在事件的按键,和字符码两者相同的价值观,和字符编码存储。
在歌剧中,键码值,它总是相同的。在KeyDown和KeyUp事件,它们存储的键码,而在按键的时候,它们存储的字符代码,而不是定义的字符码,总是不确定的。
3.2,keydown / KEYUP或者按键
第一部分介绍了keydown / KEYUP和按键的区别。有一条一般规则。KeyDown事件功能按钮是最有用的,和KeyPress事件是最有用的{ 3 }打印按钮。
键盘记录器主要为可打印字符和一些功能按钮,所以按键是第一选择。然而,在第一部分中提到的,按键不支持的功能按钮在伊江,所以应该辅以keydown和keyup事件。
3.3码的实现
总体思路是使用KeyPress事件对象来获取关键特征,并使用KeyDown事件获得的功能特性,如进、退,等。
代码实现如下
复制代码代码如下所示:
DOCTYPE html PUBLIC / / / / DTD W3C HTML 4过渡 / / EN>
JS关键记录
var =keystring ; / /串记录按钮
函数$(S){ return document.getelementbyid(S)document.getelementbyid(S):S;}
功能按键(E)
{
无功currkey = 0,E = E CapsLock = 0,| |事件;
currkey =能| | e.which | | e.charcode;
CapsLock = currkey > = 65currkey < = 90;
开关(currkey)
{
/ /屏蔽键,制表,进入空间,方向键、删除键
案例8:案例9:案例13:案例32:案例37:案例38:案例39:案例40:案例46:键名= ;打破;
默认的控制台= String.fromCharCode(currkey);突破;
}
keystring =键名;
}
功能keydown(E)
{
VaR E = E | |事件;
无功currkey =能| | e.which | | e.charcode;
如果((currkey > 7currkey31currkey<47))
{
开关(currkey)
{
案例8:键名={背景};打破;
案例9:键名={表};打破;
案例13:键名={回报};打破;
案例32:键名={空间};打破;
案例33:键名={上};打破;
案例34:键名={下一页};打破;
Case 35:keyName = {End}; break;
案例36:键名={家};打破;
案例37:键名={左方向键};打破;
案例38:键名={ }突破方向键;
案例39:键名={方向键右};打破;
案例40:键名={ }下方向键;打破;
案例46:键名={删除};打破;
默认的控制台= ;打破;
}
keystring =键名;
}
$(内容).innerHTML = keystring;
}
函数的Keyup(E)
{
$(内容).innerHTML = keystring;
}
文件。键盘=按键;
document.onkeydown = KeyDown;
document.onkeyup = KeyUp;
请按任意键检查键盘响应键值:
代码分析:
$():基于ID获取DOM
按键(E):对特征码拦截的实现,因为功能键使用KeyDown,所以在按键屏蔽功能键。
keydown(E):主要目的是实现对功能键的访问。
Keyup(E):显示截取的字符串。
用js实现键盘记录,我们应该关注三种按键事件,即Keydown、按键和KeyUp,对应三个事件处理时,分别按下键和onKeyUp。一个典型的按钮产生这三个事件,反过来KeyDown,KeyUp按键,然后当按钮被释放。
这3种事件类型,keydown和Keyup都低,和按键是比较先进的。所谓的先进水平,当用户按下Shift + 1,按键的按键事件分析并返回一个可打印字符,而keydown和Keyup只记录转移+ 1。{ 1 }
但按键只能对一些可打印字符是有效的,但功能按钮,如F1-F12,退格,回车,逃跑,PageUP,键和箭头的方向,不会有按键事件,但Keydown和KeyUp事件可以生成。在FireFox,然而,功能键可以产生KeyPress事件。
这是通过KeyDown,按键事件对象,和KeyUp事件处理有一些通用的性能。如果ALT、Ctrl或Shift是一起按下按钮,通过属性altkey表示,ctrlkey和大写键事件。这些属性在Firefox和IE.中是通用的。
第二部分:兼容浏览器
所有涉及浏览器的JS都应该考虑浏览器的兼容性。
目前,主要的浏览器主要基于IE和Mozilla两类,傲游基于IE内核,Firefox和Opera基于Mozilla内核。
2.1事件的初始化
首先要理解的是如何初始化事件,基本语句如下所示:
功能(keydown){ }
document.onkeydown = KeyDown;
当浏览器读取语句,无论哪个键被按下,KeyDown()函数将被调用。
2.2 Firefox和Opera的实现
像Firefox和Opera这样的程序比IE更麻烦,所以先在这里描述一下。
KeyDown()函数有一个隐藏的变量,一般来说,我们用字母E来表示这个变量。
功能keydown(E)
变量E表示击键事件的发生,寻找按下哪个键并使用哪个属性:
E.它
将给出索引的索引值,并将索引值转换为键的字母或数字值。我们需要使用静态函数String.fromCharCode()。
String.fromCharCode(e.which)
把上面的语句放在一起,我们就可以得到Firefox中按下的键:
复制代码代码如下所示:
功能keydown(e){
VaR密码=哪;
无功realkey = String.fromCharCode(e.which);
警报(关键代码:+密码+ 字:+ realkey);
}
document.onkeydown = KeyDown;
2.3 IE的实现
ie程序不需要e变量。而大肠,window.event.keycode用于转化的关键指标的关键值。该方法类似于String.fromCharCode(事件。密码)。程序如下:
复制代码代码如下所示:
功能KeyDown(){
VaR密码=的情况下;
无功realkey = String.fromCharCode(事件。密码);
警报(关键代码:+密码+ 字:+ realkey);
}
document.onkeydown = KeyDown;
2.4判断浏览器的类型
在浏览器中的上述理解是如何实现的关键事件对象的方法,则需要判断浏览器的类型,这种方法有很多,容易理解,有聪明的方法说:一般的做法是使用导航对象的修改属性,当然,也可以使用UserAgent属性来修改可以判断浏览器类型,IE和傲游应用程序的名字微软Internet Explorer,Firefox,Netscape歌剧修改,所以一个比较简单的函数代码:
复制代码代码如下所示:
功能键抬起(e){
如果(navigator.appname = =微软Internet Explorer)
{
VaR密码=的情况下;
无功realkey = String.fromCharCode(事件。密码);
}其他
{
VaR密码=哪;
无功realkey = String.fromCharCode(e.which);
}
警报(关键代码:+密码+ 字:+ realkey);
}
document.onkeyup = KeyUp;
更简洁的方法是{ 2 }:
复制代码代码如下所示:
功能键抬起(e){
无功currkey = 0,E = E | |事件;
currkey =能| | e.which | | e.charcode;
VaR的控制台= String.fromCharCode(currkey);
警报(关键代码:+ currkey +字符:+键名);
}
document.onkeyup = KeyUp;
上面的方法更巧妙,更容易解释。
首先,E = E | |事件;本代码为浏览器事件对象的兼容性。JS代码的含义是,如果隐藏的变量存在于Firefox或Opera,然后E | |事件返回如果IE是隐藏的,是不存在,则返回的事件。
其次,currkey =能| | e.which | | e.charcode;这是兼容的浏览器按钮事件对象代码关键属性(见第三节),如伊江、键码和Firefox的唯一属性,在它和字符码特性,键码和属性在歌剧。
上面的代码与浏览器兼容的,的KeyUp事件对象,简单的弹出按钮的代码和一个关键人物,但问题是,当你按下按钮,按键的字符都是大写,按下Shift键,性格很古怪,所以你需要优化你的代码。
第三部分:代码的实现与优化。
3.1个关键事件的密钥代码和字符代码
击键和字符码在浏览器之间缺乏可移植性。为不同的浏览器和不同的情况下,有不同的方式来存储键码和字符代码。
在伊江,只有一个键码属性,和它的解释取决于事件的类型。Keydown,键位商店的关键代码,并对按键事件,键位商店是一个字符的编码,没有和伊江字符码属性,所以它与字符码属性总是不确定的。
在Firefox中,密码一直是0,当时间keydown / KEYUP,字符码= 0,这是关键的代码。在事件的按键,和字符码两者相同的价值观,和字符编码存储。
在歌剧中,键码值,它总是相同的。在KeyDown和KeyUp事件,它们存储的键码,而在按键的时候,它们存储的字符代码,而不是定义的字符码,总是不确定的。
3.2,keydown / KEYUP或者按键
第一部分介绍了keydown / KEYUP和按键的区别。有一条一般规则。KeyDown事件功能按钮是最有用的,和KeyPress事件是最有用的{ 3 }打印按钮。
键盘记录器主要为可打印字符和一些功能按钮,所以按键是第一选择。然而,在第一部分中提到的,按键不支持的功能按钮在伊江,所以应该辅以keydown和keyup事件。
3.3码的实现
总体思路是使用KeyPress事件对象来获取关键特征,并使用KeyDown事件获得的功能特性,如进、退,等。
代码实现如下
复制代码代码如下所示:
DOCTYPE html PUBLIC / / / / DTD W3C HTML 4过渡 / / EN>
JS关键记录
var =keystring ; / /串记录按钮
函数$(S){ return document.getelementbyid(S)document.getelementbyid(S):S;}
功能按键(E)
{
无功currkey = 0,E = E CapsLock = 0,| |事件;
currkey =能| | e.which | | e.charcode;
CapsLock = currkey > = 65currkey < = 90;
开关(currkey)
{
/ /屏蔽键,制表,进入空间,方向键、删除键
案例8:案例9:案例13:案例32:案例37:案例38:案例39:案例40:案例46:键名= ;打破;
默认的控制台= String.fromCharCode(currkey);突破;
}
keystring =键名;
}
功能keydown(E)
{
VaR E = E | |事件;
无功currkey =能| | e.which | | e.charcode;
如果((currkey > 7currkey31currkey<47))
{
开关(currkey)
{
案例8:键名={背景};打破;
案例9:键名={表};打破;
案例13:键名={回报};打破;
案例32:键名={空间};打破;
案例33:键名={上};打破;
案例34:键名={下一页};打破;
Case 35:keyName = {End}; break;
案例36:键名={家};打破;
案例37:键名={左方向键};打破;
案例38:键名={ }突破方向键;
案例39:键名={方向键右};打破;
案例40:键名={ }下方向键;打破;
案例46:键名={删除};打破;
默认的控制台= ;打破;
}
keystring =键名;
}
$(内容).innerHTML = keystring;
}
函数的Keyup(E)
{
$(内容).innerHTML = keystring;
}
文件。键盘=按键;
document.onkeydown = KeyDown;
document.onkeyup = KeyUp;
请按任意键检查键盘响应键值:
代码分析:
$():基于ID获取DOM
按键(E):对特征码拦截的实现,因为功能键使用KeyDown,所以在按键屏蔽功能键。
keydown(E):主要目的是实现对功能键的访问。
Keyup(E):显示截取的字符串。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。