zoukankan      html  css  js  c++  java
  • keydown

    英文输入法:
     
    事件触发顺序:keydown - > keypress - > keyup

     
    中文输入法:
     
    firfox:输入触发keydown,回车确认输入触发keyup
    chrome:输入触发keydown、keyup,回车确认输入只触发keydown
    IE:输入触发keydown、keyup,回车确认输入触发keydown,keyup
    Safari:输入触发keydown、keyup,回车确认输入触发keydown,keyup
    opera:输入触发keydown、keyup,回车确认输入触发keydown,keyup
     
    keypress事件不能对系统功能键(例如:后退、删除等,其中对中文输入法不能有效响应)进行正常的响应,
    keydown和keyup均可以对系统功能键进行有效的拦截,但事件截获的位置不同。
     
    键盘中的键分为字符(可打印)键和功能键(不可打印),系统功能键包括如下:
    Esc、Tab、Caps Lock、Shift、Ctrl、Alt、Enter、Backspace、Print Screen、Scroll Lock、Pause Break、Insert、Delete、Home、End、Page Up、Page Down, F1 through F12,Num Lock、The Arrow Keys。
     
    keypress响应系统功能键总结:
    Firefox:支持 Esc、Enter、Backspace、Pause Break、Insert、Delete、Home、End、Page Up、Page Down、F1 through F12、The Arrow Keys
    Chrome:支持Enter
    Oprea:支持Enter
    Safari:支持Enter
    IE:支持Esc、Enter
     
    ps:
    firefox:上下左右键会触发kepress.
     
    chrome: 上下左右键不会触发kepress.
     
    oprea:上下左右键不会触发kepress.
     
    safari:上下左右键不会触发kepress.
     
    IE:上下左右键不会触发kepress.
     
    ================================================================================
    keyCode(键码), which, charCode(字符编码)
     
    keydown: 获得keyCode, charCode=0
     
    keypress: 字符(英文区分大小写+数字  / * , .  ...等非功能键),keyCode=0 ,获取charCode值, 反之获取keyCode, charCode=0
     
    keyup: 获得keyCode, charCode=0
     
    jquery 中 event.which = original.charCode != null ? original.charCode : original.keyCode;
     
     
    总结:回车、上下左右、等功能键keydown、keypress、keyup都获取keyCode,并且值相等。
     
     
    开启大写情况,keydown、keypress(字母,主键盘数字、回车)、keyup,which值相等,小写kepress获取的which不同于keypress、keyup。
     
    keypress事件的keyCode对字母的大小写敏感,而keydown、keyup事件不敏感
    keypress事件的which值无法区分主键盘上的数字键和附键盘数字键的,而keydown、keyup的which值对主附键盘的数字键敏感。
    IE(ie9以下)只有一个属性KeyCode属性,当为keydown和keyup 事件是,keycode属性表示你具体按下的键(也称为virtual keycode),当捕捉的是keypress事件时keyCode属性指的是你键入的字符(character code)   
     
    标准浏览器中情况有些不同,event对象包含一个keyCode属性和一个charCode属性,keydown和keyup事 件的时候,keyCode表示的就是你具体按的键,charCode为0;当捕捉的是keypress事件时,keyCode为0,charCode指的 是你按下的字符,鉴于IE和FF中的区别,如果你比较懒的话,建议只使用keydow和keyup事件
     
     
    /**
    本文所涉及浏览器(除ie)都为最新版本
    **/
  • 相关阅读:
    Oracle的分区打点
    学习Struts2经验总结
    优化MVC,实现数据库表的记录的添加、删除、修改、查询。
    基于struts研究传值问题
    基于“MVC”框架集设计模式,开发用户管理系统!
    使用Struts,实现简单的登录
    QT学习4:使用窗口部件
    QT学习9:绘制函数
    QT学习8:准备战斗
    QT学习6:组装丰富的积木!
  • 原文地址:https://www.cnblogs.com/hhg-2015/p/5308364.html
Copyright © 2011-2022 走看看