首先来看一段 html 代码:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Firefox 提示event is not defined错误的解决办法</title> </head> <body> <script language="javascript"> document.onkeydown=function mykeyDown(){ if(event.keyCode==13){alert('oh my www.maopiaopiao.com');} return; } </script> </body> </html>
以上 js 代码的意思是你在当前页面点击 Enter 键的话,都会弹出一个警告框,警告内容自己看。这不是重点。
这段代码在 IE 中运行是正常的,但在Firefox中却会报 "event is not defined" 的错误!Firefox 报这个错误的原因是因为在 Firefox 使用的事件对象模型是W3C Dom,不同于IE Dom。Firefox DOM中并无 event,因为Firefox下不能通过 window.event 来获取 event 的对象。那么该如何解决呢?
经过多次测试,得出采用以下方法解决,可以同时兼容 IE 和 Firefox 的event 事件。对以上 js 代码稍作处理。
document.onkeydown=function mykeyDown(e){ e=e||event; if(e.keyCode==13){alert('oh my www.maopiaopiao.com');} return; }
ok,至此 Firefox 提示 event is not defined 错误的问题得到解决。