<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JavaChen on JavaKeyboard</title>
	<atom:link href="http://www.javachen.com/tag/keyboard/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.javachen.com</link>
	<description>Just some sharing about Java open source and life</description>
	<lastBuildDate>Mon, 06 Feb 2012 12:16:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Handling Keyboard Shortcuts in JavaScript</title>
		<link>http://www.javachen.com/2010/03/handling-keyboard-shortcuts-in-javascript/</link>
		<comments>http://www.javachen.com/2010/03/handling-keyboard-shortcuts-in-javascript/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 08:58:31 +0000</pubDate>
		<dc:creator>JavaChen</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[Keyboard]]></category>

		<guid isPermaLink="false">http://www.javachen.com/?p=1121</guid>
		<description><![CDATA[在web开发中，对页面的进行全局或部分页面进行键盘快捷键事件注册，能够有效的提高页面的用户体验。在ExtJs中的表格Form中就有回车提交的事件，实现方法可以参照我的另一篇文章：Ext监控回车按键。 在网络上看到了一篇处理JavaScript键盘快捷键事件的文章：Handling Keyboard Shortcuts in JavaScript ，其实现方法很简单，只是封装了一个shortcut的类，提供了注册快捷键的方法和删除快捷键事件的方法。 其源代码如下，其中代码逻辑很容易看懂而且其中考虑了各种浏览器的兼容问题（可以参照我的上一篇文章：DOM 事件模型）。通过以下代码，可以熟悉如何处理各种浏览器事件处理的兼容性问题。 ?View Code JAVASCRIPT1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [...]<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="DOM 事件模型" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fdom-event-model%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">DOM 事件模型</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="javascript的DOM函数方法" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F06%2Fjavascript_dom_function%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">javascript的DOM函数方法</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Unobtrusive Javascript" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F01%2Funobtrusive-javascript%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/05/31/10383161.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Unobtrusive Javascript</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="javascript 弹出子窗口" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F10%2Fjavascript_open%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">javascript 弹出子窗口</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JavaScript中isNaN函数" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F08%2Fjavascript_isnan%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JavaScript中isNaN函数</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>]]></description>
			<content:encoded><![CDATA[<p>在web开发中，对页面的进行全局或部分页面进行键盘快捷键事件注册，能够有效的提高页面的用户体验。在ExtJs中的表格Form中就有回车提交的事件，实现方法可以参照我的另一篇文章：<a href="http://www.javachen.com/2009/10/ext_enter/">Ext监控回车按键</a>。<br />
在网络上看到了一篇处理JavaScript键盘快捷键事件的文章：<a href="http://www.openjs.com/scripts/events/keyboard_shortcuts/">Handling Keyboard Shortcuts in JavaScript </a> ，其实现方法很简单，只是封装了一个shortcut的类，提供了注册快捷键的方法和删除快捷键事件的方法。<span id="more-1121"></span><br />
其源代码如下，其中代码逻辑很容易看懂而且其中考虑了各种浏览器的兼容问题（可以参照我的上一篇文章：<a href="http://www.javachen.com/2010/03/dom-event-model/">DOM 事件模型</a>）。通过以下代码，可以熟悉如何处理各种浏览器事件处理的兼容性问题。</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p1121code2'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p11212"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
</pre></td><td class="code" id="p1121code2"><pre class="javascript" style="font-family:monospace;">/**
 * http://www.openjs.com/scripts/events/keyboard_shortcuts/ Version : 2.01.B By
 * Binny V A License : BSD
 * Modified by www.javachen.com  javachen
 */
shortcut = {
	'all_shortcuts' : {},// All the shortcuts are stored in this array
	'add' : function(shortcut_combination, callback, opt) {
		// Provide a set of default options
		var default_options = {
			'type' : 'keydown',//按键事件类型,IE中keypress不支持功能按键，所以应该用keydown/keyup事件来进行补充。
			'propagate' : false,
			'disable_in_input' : false,//是否在input,Textarea内有效
			'target' : document,//事件作用对象,相当于事件的相应范围scope,该值可以为节点的ID
			'keycode' : false
		}
		//处理配置项,如果为空就使用默认的
		if (!opt)
			opt = default_options;
		else {
			for (var dfo in default_options) {
				if (typeof opt[dfo] == 'undefined')
					opt[dfo] = default_options[dfo];
			}
		}
&nbsp;
		//如果target为字符串,则通过该字符串取得该DOM对象
		var ele = opt.target;
		if (typeof opt.target == 'string')
			ele = document.getElementById(opt.target);
&nbsp;
		var ths = this;//保存当前的this引用
		//联合快捷键
		shortcut_combination = shortcut_combination.toLowerCase();
&nbsp;
		// The function to be called at keypress
		var func = function(e) {
			e = e || window.event;//处理浏览器对event的兼容性,只有IE浏览器的event=window.event
&nbsp;
			if (opt['disable_in_input']) { // Don't enable shortcut keys in
				// Input, Textarea fields
				var element;
				if (e.target)
					//针对IE浏览器
					element = e.target;
				else if (e.srcElement)
					//针对DOM标准浏览器
					element = e.srcElement;
				//如果当前节点为文本节点,则取其父节点
				if (element.nodeType == 3)
					element = element.parentNode;
				//如果当前节点标签名为INPUT或TEXTAREA,则当前函数不做处理
				if (element.tagName == 'INPUT' || element.tagName == 'TEXTAREA')
					return;
			}
&nbsp;
			// Find Which key is pressed
			if (e.keyCode)
			    //针对IE浏览器,e.keyCode返回按键对应的数值
				code = e.keyCode;
			else if (e.which)
			    //针对DOM标准浏览器,如Firefox,e.keyCode返回按键对应的数值
				code = e.which;
			//e.which将给出该键的索引值，把索引值转化成该键的字母或数字值的方法需要用到静态函数String.fromCharCode()
			var character = String.fromCharCode(code).toLowerCase();
&nbsp;
			if (code == 188)
				character = &quot;,&quot;;
			if (code == 190)
				character = &quot;.&quot;; 
&nbsp;
			var keys = shortcut_combination.split(&quot;+&quot;);
			// Key Pressed - counts the number of valid keypresses - if it is
			// same as the number of keys, the shortcut function is invoked
			var kp = 0;
&nbsp;
			// Work around for stupid Shift key bug created by using lowercase -
			// as a result the shift+num combination was broken
			var shift_nums = {
				&quot;`&quot; : &quot;~&quot;,
				&quot;1&quot; : &quot;!&quot;,
				&quot;2&quot; : &quot;@&quot;,
				&quot;3&quot; : &quot;#&quot;,
				&quot;4&quot; : &quot;$&quot;,
				&quot;5&quot; : &quot;%&quot;,
				&quot;6&quot; : &quot;^&quot;,
				&quot;7&quot; : &quot;&amp;amp;&quot;,
				&quot;8&quot; : &quot;*&quot;,
				&quot;9&quot; : &quot;(&quot;,
				&quot;0&quot; : &quot;)&quot;,
				&quot;-&quot; : &quot;_&quot;,
				&quot;=&quot; : &quot;+&quot;,
				&quot;;&quot; : &quot;:&quot;,
				&quot;'&quot; : &quot;\&quot;&quot;,
				&quot;,&quot; : &quot;&amp;lt;&quot;, 				
                                &quot;.&quot; : &quot;&amp;gt;&quot;,
				&quot;/&quot; : &quot;?&quot;,
				&quot;\\&quot; : &quot;|&quot;
			}
			// Special Keys - and their codes
			var special_keys = {
				'esc' : 27,
				'escape' : 27,
				'tab' : 9,
				'space' : 32,
				'return' : 13,
				'enter' : 13,
				'backspace' : 8,
&nbsp;
				'scrolllock' : 145,
				'scroll_lock' : 145,
				'scroll' : 145,
				'capslock' : 20,
				'caps_lock' : 20,
				'caps' : 20,
				'numlock' : 144,
				'num_lock' : 144,
				'num' : 144,
&nbsp;
				'pause' : 19,
				'break' : 19,
&nbsp;
				'insert' : 45,
				'home' : 36,
				'delete' : 46,
				'end' : 35,
&nbsp;
				'pageup' : 33,
				'page_up' : 33,
				'pu' : 33,
&nbsp;
				'pagedown' : 34,
				'page_down' : 34,
				'pd' : 34,
&nbsp;
				'left' : 37,
				'up' : 38,
				'right' : 39,
				'down' : 40,
&nbsp;
				'f1' : 112,
				'f2' : 113,
				'f3' : 114,
				'f4' : 115,
				'f5' : 116,
				'f6' : 117,
				'f7' : 118,
				'f8' : 119,
				'f9' : 120,
				'f10' : 121,
				'f11' : 122,
				'f12' : 123
			}
&nbsp;
			var modifiers = {
				shift : {
					wanted : false,
					pressed : false//是否被按
				},
				ctrl : {
					wanted : false,
					pressed : false
				},
				alt : {
					wanted : false,
					pressed : false
				},
				meta : {
					wanted : false,
					pressed : false
				} // Meta is Mac specific
			};
&nbsp;
			if (e.ctrlKey)
				modifiers.ctrl.pressed = true;
			if (e.shiftKey)
				modifiers.shift.pressed = true;
			if (e.altKey)
				modifiers.alt.pressed = true;
			if (e.metaKey)
				modifiers.meta.pressed = true;
&nbsp;
			for (var i = 0; k = keys[i], i &lt; keys.length; i++) {
				// Modifiers
				if (k == 'ctrl' || k == 'control') {
					kp++;
					modifiers.ctrl.wanted = true;
&nbsp;
				} else if (k == 'shift') {
					kp++;
					modifiers.shift.wanted = true;
&nbsp;
				} else if (k == 'alt') {
					kp++;
					modifiers.alt.wanted = true;
				} else if (k == 'meta') {
					kp++;
					modifiers.meta.wanted = true;
				} else if (k.length &gt; 1) { // If it is a special key
					if (special_keys[k] == code)
						kp++;
&nbsp;
				} else if (opt['keycode']) {
					if (opt['keycode'] == code)
						kp++;
&nbsp;
				} else { // The special keys did not match
					if (character == k)
						kp++;
					else {
						if (shift_nums[character] &amp;&amp; e.shiftKey) { // Stupid
							// Shift key
							// bug
							// created
							// by using
							// lowercase
							character = shift_nums[character];
							if (character == k)
								kp++;
						}
					}
				}
			}
			if (kp == keys.length
					&amp;amp;&amp;amp; modifiers.ctrl.pressed == modifiers.ctrl.wanted
					&amp;amp;&amp;amp; modifiers.shift.pressed == modifiers.shift.wanted
					&amp;amp;&amp;amp; modifiers.alt.pressed == modifiers.alt.wanted
					&amp;amp;&amp;amp; modifiers.meta.pressed == modifiers.meta.wanted) {
				callback(e);
&nbsp;
				if (!opt['propagate']) { // Stop the event
					// e.cancelBubble is supported by IE - this will kill the
					// bubbling process.
					e.cancelBubble = true;
					e.returnValue = false;
&nbsp;
					// e.stopPropagation works in Firefox.
					if (e.stopPropagation) {
						e.stopPropagation();
						e.preventDefault();
					}
					return false;
				}
			}
		}
		this.all_shortcuts[shortcut_combination] = {
			'callback' : func,
			'target' : ele,
			'event' : opt['type']
		};
		// Attach the function with the event
		if (ele.addEventListener)
			ele.addEventListener(opt['type'], func, false);
		else if (ele.attachEvent)
			ele.attachEvent('on' + opt['type'], func);
		else
			ele['on' + opt['type']] = func;
	},
&nbsp;
	// Remove the shortcut - just specify the shortcut and I will remove the
	// binding
	'remove' : function(shortcut_combination) {
		shortcut_combination = shortcut_combination.toLowerCase();
		var binding = this.all_shortcuts[shortcut_combination];
		delete(this.all_shortcuts[shortcut_combination])
		if (!binding)
			return;
		var type = binding['event'];
		var ele = binding['target'];
		var callback = binding['callback'];
&nbsp;
		if (ele.detachEvent)
			ele.detachEvent('on' + type, callback);
		else if (ele.removeEventListener)
			ele.removeEventListener(type, callback, false);
		else
			ele['on' + type] = false;
	}
}</pre></td></tr></table></div>

<table class="wumii-related-items" cellspacing="0" cellpadding="3" border="0"  style="clear: both;">
    
    <tr>
        <td colspan="5"><b><font size="-1"  style="display: block !important; padding: 20px 0 5px !important;">您可能也喜欢：</font></b></td>
    </tr>
    
        <tr>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important;">
                    <a target="_blank" title="DOM 事件模型" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fdom-event-model%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">DOM 事件模型</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="javascript的DOM函数方法" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F06%2Fjavascript_dom_function%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">javascript的DOM函数方法</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="Unobtrusive Javascript" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2010%2F01%2Funobtrusive-javascript%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/site_images/2011/05/31/10383161.jpg" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">Unobtrusive Javascript</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="javascript 弹出子窗口" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F10%2Fjavascript_open%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">javascript 弹出子窗口</font>
                    </a>
                </td>
                <td width="102" valign="top" style="padding: 5px !important; margin: 0 !important; border-left: 1px solid #DDDDDD !important;">
                    <a target="_blank" title="JavaScript中isNaN函数" style="text-decoration: none !important; cursor: pointer !important;" href="http://app.wumii.com/ext/redirect.htm?url=http%3A%2F%2Fwww.javachen.com%2F2009%2F08%2Fjavascript_isnan%2F&from=http%3A%2F%2Fwww.javachen.com%2F2010%2F03%2Fhandling-keyboard-shortcuts-in-javascript%2F">
                        <img style="margin: 0 !important; padding: 2px !important; border: 1px solid #DDDDDD !important; width: 96px !important; height: 96px !important;" src="http://static.wumii.com/images/blogWidget/wordpress_default.gif" width="96px" height="96px" /><br />
                        <font size="-1" color="#333333" style="display: block !important; line-height: 15px !important; width: 102px !important; font: 12px/15px arial !important; height: 60px !important; margin: 3px 0 0 0 !important; padding: 0 !important; overflow: hidden !important;">JavaScript中isNaN函数</font>
                    </a>
                </td>
        </tr>
    
    <tr>
        <td colspan="5" align="right">
            <a style="text-decoration: none !important;" href="http://www.wumii.com/widget/relatedItems.htm" target="_blank" title="无觅相关文章插件">
                <font size="-1" color="#bbbbbb" style="display: block !important; font-family: arial !important; padding: 5px 0 !important; font-size: 12px !important; color: #bbb !important;">无觅</font>
            </a>
        </td>
    </tr>
</table>Here is no comments yet by the time  your rss reader get this, Do you want to be the first commentor? Hurry up ]]></content:encoded>
			<wfw:commentRss>http://www.javachen.com/2010/03/handling-keyboard-shortcuts-in-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.javachen.com/tag/keyboard/feed/ ) in 3.34278 seconds, on Feb 7th, 2012 at 8:18 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 7th, 2012 at 9:18 pm UTC -->
