昨天在Kaisir.Wang的文章里留言,我在输入C++的大写字母C时习惯性的按下了Shift+c,竟然弹出了个Hello World窗口。按照他的回复,这是他博客里的彩蛋。汗,一点也不好玩。
然后我把那段JavaScript代码找出来了,如下:
document.onkeydown=onkey; function onkey(){ if ((event.shiftKey)&&(event.keyCode==67)) alert("Hello World!"); }
他后面又回复说这代码在火狐下无效,于是我Google了一下,原来是因为onkeydown事件在IE和FireFox的实现不一样。
Browser differences: Internet Explorer uses event.keyCode to retrieve the character that was pressed and Netscape/Firefox/Opera uses event.which.
IE用event.keyCode返回按下的按键,而Netscape/Firefox/Opera用的是event.which。
原因已找到,把代码稍微修改一下:
document.onkeydown = function(e) { e = e ? e : window.event; var keyCode = e.which ? e.which : e.keyCode; if(e.shiftKey && keyCode == 67) alert("Hello World!"); }
我还专门装了个FireFox测试,通过。
参考链接:onkeypress Event