- 浏览: 365032 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
jiangli19192:
...
自己写的一个启动JBoss服务器的bat批处理 -
56553655:
最好这样:java -Xms3700M -Xmx3700M - ...
测试本机JVM支持的最大内存 -
lizhiy05:
学习一哈……
Web Services体系结构及相关概念 -
ghy200692162:
System.out.println("开始注册Js ...
基于OSGi的JSF Web组件开发问题求解 -
xiao888lin:
你的头像看起来很像我们宿舍老四。。。
测试本机JVM支持的最大内存
在很多应用中,用户都希望WEB应用能够在界面上支持一些快捷键,最常见的就是上下左右、TAB、回车等的快捷键支持。抛开在页面上运行Applet、Flash 的方式来对键盘快捷键支持外,利用JavaScript也能够有出色的表现。
在对键盘时间的支持上,操作系统提供了一整套的虚拟键键值,要使我们的应用能够很好的支持快捷键,了解这些键值是必不可少的。
现将常见的键值列举如下:
A 0X65 U 0X85
B 0X66 V 0X86
C 0X67 W 0X87
D 0X68 X 0X88
E 0X69 Y 0X89
F 0X70 Z 0X90
G 0X71 0 0X48
H 0X72 1 0X49
I 0X73 2 0X50
J 0X74 3 0X51
K 0X75 4 0X52
L 0X76 5 0X53
M 0X77 6 0X54
N 0X78 7 0X55
O 0X79 8 0X56
P 0X80 9 0X57
Q 0X81 ESC 0X1B
R 0X82 CTRL 0X11
S 0X83 SHIFT 0X10
T 0X84 ENTER 0XD(用十进制就是13)
B 0X66 V 0X86
C 0X67 W 0X87
D 0X68 X 0X88
E 0X69 Y 0X89
F 0X70 Z 0X90
G 0X71 0 0X48
H 0X72 1 0X49
I 0X73 2 0X50
J 0X74 3 0X51
K 0X75 4 0X52
L 0X76 5 0X53
M 0X77 6 0X54
N 0X78 7 0X55
O 0X79 8 0X56
P 0X80 9 0X57
Q 0X81 ESC 0X1B
R 0X82 CTRL 0X11
S 0X83 SHIFT 0X10
T 0X84 ENTER 0XD(用十进制就是13)
还有方向键:
← 37 → 39
F1键 112 F2键 113
F3键 114 F4键 115
F5键 115 F6键 116
F7键 117 F8键 118
F1键 119 F4键 110
退格删除键 8 TAB键 40
通常,快捷键的支持都是在整个Document对象内部都有效的。因此,在声明脚本时可以采用以下方式:
<script language="javascript" for="document" event="onkeydown">
这样,在整个Document对象内部,你所声明的其内所有的脚本都会生效。因此,如果你需要做的处理都比较简单的话,你也不必要使用function来处理。这种方式或许会更加有效。
为了能够更好的支持虚拟键,JavaScript还对一些常用控制键进行了更进一步的封装,这些键有:Ctrl键、Shift键、Alt键等,对应的操作指令分别为:
window.event.ctrlKey
window.event.shiftKey
window.event.altKey
举个简单的例子:如果我们要在页面上将Enter键和Tab键都屏蔽成将光标向下一个表单元素移动,那么可以加入以下代码:
js 代码
- if(event.keyCode==13 || event.keyCode==40){
- event.keyCode=9;
- CurTabIndex=event.srcElement.tabIndex+1//将当前tabindex的值加1
- for (n=0;n<insert.elements.length;n++)
- {
- if (insert.elements[n].tabIndex==CurTabIndex) //找到下一个表单元素
- {
- insert.elements[n].focus(); //移动焦点
- return true;
- }
- }
- }
但是,你很快就会发现,上面的代码只有在 IE 上有效,而在 Netscape 上却怎么也得不到你想要的结果,原因是 Netscape 和 IE 在对键盘事件的JS支持上是不同的。对于类似于:event.keyCode 这样的东西只有IE才能够支持,而在 Netscape 上,则采用e.which ,因此,如果你的应用需要支持多浏览器版,需要做的在这里也许仅仅是用e.which 来代替 window.event.keyCode 。
用两种浏览器检查上述实例,你会发现执行结果不总是一样的,这是因为两种浏览器的键盘代码设置不相同,因此你必须使用单独的代码分别来写这段程序(行业垄断和竞争的悲剧呀!--痛苦的可是我们这帮程序员呀......)。
以下是一个在网路上找到的对 IE 和 Netscape 进行分别处理的小程序,通过这段代码可以很容易看出两个浏览器的不同处理方式:
js 代码
- function init() {
- if (ns4) block = document.blockDiv
- if (ie4) block = blockDiv.style
- block.xpos = parseInt(block.left)
- block.active = false
- document.onkeydown = keyDown
- document.onkeyup = keyUp
- if (ns4) document.captureEvents(Event.KEYDOWN | Event.KEYUP)
- }
- function keyDown(e) {
- if (ns4) {var nKey=e.which; var ieKey=0}
- if (ie4) {var ieKey=event.keyCode; var nKey=0}
- if ((nKey==97 || ieKey==65) && !block.active) { // if "A" key is pressed
- block.active = true slide()
- }
- }
- function keyUp(e) {
- if (ns4) {var nKey=e.which; var ieKey=0}
- if (ie4) {var ieKey=event.keyCode; var nKey=0}
- if (nKey==97 || ieKey==65) {
- block.active = false // if "A" key is released
- }
- }
- function slide() {
- if (block.active) {
- block.xpos += 5
- block.left = block.xpos
- status = block.xpos // not needed, just for show
- setTimeout("slide()",30)
- }
- }
发表评论
-
让mybatis支持管理和操作多个不同的业务数据库实例
2017-05-07 21:25 6358在微服务大行其道的今天,一个工程中同时操作多个不同的业务数 ... -
Spring Acegi鉴权管理之基础模式(BASIC)
2017-05-01 01:25 1062Acegi久负盛名,这个家伙是一个spring中广泛使用的认 ... -
Restful架构服务构建指南
2017-04-17 01:19 495REST定位为“分布式超媒体应用(Distributed H ... -
集成ibatis的spring工程升级到spring4.0实操手册
2017-04-03 21:57 3243Spring4及已经的版本放弃了对ibatis的集成支持, ... -
Docker使用之Java web应用部署
2017-03-26 13:50 3981此篇博客一部分内容 ... -
Java设计设计模式之桥接模式(Bridge)
2017-03-11 19:19 0... -
Java设计设计模式之组合模式(Composition)
2017-03-11 17:32 1031那王麻子自从做了肉夹馍生意后,真是风生水起,分店开的跟下饺 ... -
Java设计设计模式之适配器模式(Adaptor)
2017-03-05 15:29 1502我的博客自从2008年以 ... -
RBAC原理介绍及开源框架kasai使用分析
2008-08-13 16:20 10496RBAC 模型作为目前 ... -
用Maven Plug-In来构建Corba开发环境
2008-03-21 10:49 2985这两天研究Corba,总是感觉需要在Java的命令行执行“id ... -
LDAP介绍
2008-03-18 09:57 16091.1. LDAP是什么 LDAP是轻量目录访问协议,英文全称 ... -
Java与CORBA技术结合的前景展望
2008-03-13 11:09 1906随着Internet、Intranet及Extranet在全球 ... -
Drools规则引擎应用总结
2008-02-01 10:07 0package com.playphone.qc.workfl ... -
详解Axis2实现Web Services之ADB篇
2007-07-17 22:35 9964构建一个新的Web Services服务,会有很多种不同的方法 ... -
详解Axis2实现Web Services之AXIOM篇
2007-07-17 22:30 6877AXIOM——AXis 对象模型(AXis Object M ... -
详解Axis2实现Web Services之POJOs篇
2007-07-17 22:25 5271在Axis2对Web Services的众多实现方式中,POJ ... -
Web Services体系结构及相关概念
2007-07-17 22:20 3825Web Services体系结构是面向对象分析与设计(OOA ... -
Spring包结构以及各个包之间引用关系说明
2007-07-17 22:02 5120Spring 包结构说明: spring.jar 包含 ... -
从Hello World开始深入Ajax
2007-07-17 21:11 15931. 初始化XMLHttpRequest对象 ... -
在Javascript中用来获取页面焦点信息
2007-07-17 16:59 4171在Javascript中用来获取页 ...
相关推荐
键盘记录器-Javascript-only-Education 密钥捕获脚本
1. 设置元素可获得焦点以监听键盘事件 元素聚焦最大好处就是可允许发送键盘事件,HTML很多元素默认就有可聚焦,如form表单元素,a锚链接等,但大部份默认是不能聚焦的。要使得元素能够聚焦,可以在HTML代码或...
7.6 JavaScript捕获方向键 7.7 状态栏变化信息 7.8 状态栏的跑马灯效果 7.9 状态栏缩放文字 7.10 状态栏文字来回出现 7.11 交替闪烁的状态栏 7.12 状态栏的分解显示文本特效 7.13 状态栏文字从右弹出 7.14 状态栏中...
7.6 JavaScript捕获方向键 7.7 状态栏变化信息 7.8 状态栏的跑马灯效果 7.9 状态栏缩放文字 7.10 状态栏文字来回出现 7.11 交替闪烁的状态栏 7.12 状态栏的分解显示文本特效 7.13 状态栏文字从右弹出 7.14 状态栏中...
捕获键盘输入 使用IME类 虚拟键盘 第章:鼠标输入 捕获鼠标输入 鼠标输入示例:WordSearch 第章:触摸、多点触控和手势输入 触摸输入的基础知识 触摸支持发现 Touch事件处理 触摸和拖动 Gesture事件处理 疑难解答 第章...
您知道当您编写一堆脚本并且调试它们时,您会厌倦总是在键盘上输入输入,而您应该专注于调试脚本吗? 欢迎 pySpawn。 使用您通常在键盘中输入的输入创建一个文本文件,并告诉 pySpawn 使用哪个可执行文件运行哪个...
Test4MultKeyEvent.htm 还原键盘事件原貌 Load & Unload.htm HTML 加载事件 ReSize.htm resize事件 Test4Scoll.htm scroll事件 TopDivOnPage.html 页面顶部的对联广告浮动层 EventUntil.htm 定义跨...
Test4MultKeyEvent.htm 还原键盘事件原貌 Load & Unload.htm HTML 加载事件 ReSize.htm resize事件 Test4Scoll.htm scroll事件 TopDivOnPage.html 页面顶部的对联广告浮动层 EventUntil.htm 定义跨平台事件处理对象...
第 1 章 JavaScript 是什么...............................................1 3 1.1 历史简述..............................................1 1.2 JavaScript 实现................................................
Test4MultKeyEvent.htm 还原键盘事件原貌 Load & Unload.htm HTML 加载事件 ReSize.htm resize事件 Test4Scoll.htm scroll事件 TopDivOnPage.html 页面顶部的对联广告浮动层 EventUntil.htm 定义跨...
第36章 焦点、焦点的捕获和对话框 标准对话框 定制对话框 使用update命令实现动画 第37章 tk组件的属性 配置属性 尺寸 边界与浮雕效果 焦点的高亮显示 补自(padding)与挂靠(anchor) 第38章 颜色、...
JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器...
原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...