标题: 火狐(FireFox)中的onkeydown事件
作者: Demon
链接: https://demon.tw/programming/firefox-onkeydown.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
昨天在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
赞赏微信赞赏支付宝赞赏
随机文章:
能坚持用这个模板写这么多日志,你真让我佩服!
个人认为默认模板比你用的那个模板好看多了。
呵呵,各人所爱。
不错,转了!
demon是不是我的主题好看啊!哇嘎嘎
比上面那个人的好看,我很奇怪为什么那么多人用那个这么难看的模板。
哈 原来是这么回事 我发现我最近懒了 很多问题不想刨根问底了 你这篇日志不单单解决了火狐的案件问题 还给我敲了敲警钟啊 Fighting啊Fighting!
Google无敌,哇哈哈
不知道为什么现在火狐不支持e.which了,用这个还是没法通过测试QAQ
我想问下,那个e我在其他地方怎么用啊,这个e就是event吧
我其他地方死活获取不到,我前端不太明白。。