如何解决firefox下window.event的问题
window.event在IE和Opera中是一个全局变量,所以我们可以在dom对象所调用的函数中使用它。
但是在firefox中,event只是对当前触发的事件有效,有时我们想得到一些event的值(如键盘编码),就不是一件容易的事情了。
目前网上常见的方法是将event当作参数传递给dom对象的触发函数,不过这种方式在一些场合下并不适合,如为一个对象增加一个键盘抬起的监听函数,addEventListener(”onkeyup”, “doSomth(event)”),此时在firfox下,同样会报event没有定义的错误。
今天终于找到了一个能够比较圆满的解决这个问题的方案,有兴趣的同学可以看看这个例子里的toggleHighlight函数,就都明白了。
eventsexample1.html
function toggleHighlight(evt)
{
evt = (evt) ? evt : ((window.event) ? window.event : "")
// 这行是我新加的,用于获得当前的keycode,为了浏览器兼容要写不少莫名的代码 -_-!
keyCode = evt.keyCode ? evt.keyCode : (evt.which ? evt.which :evt.charCode);
if (evt) {
var elem = (evt.target) ? evt.target : evt.srcElement
elem.className = (evt.type == "mouseover") ? "highlight" : "normal"
}
}
还有一篇文章,对event做了更为详尽的介绍:Supporting Three Event Models at Once
匿名:
fsd:emtf:
16 四月 2007, 3:06 下午匿名:
16 四月 2007, 3:06 下午呵呵:
:wink::wink::!::!::idea::roll::evil::evil::lol::?::?::roll::twisted::twisted:
25 四月 2007, 6:18 下午liyuehui:
现在网上有好多的关于“按回车实现TAB键功能”的介绍,但是我试了好多,在firefox里都不可用,我获得的异常信息是针对它的: “evt.which = 9;” ,提示:次属性为只读。试试了好多的方法,都不可用,希望得到你的帮着。我的邮箱:liyuehui5205@gmai.com 。静候佳音。
17 七月 2007, 9:25 上午匿名:
31 七月 2007, 5:02 下午匿名:
:faint::emtf::zk::down::roll::wink::ill::affect::!::emtf:
26 九月 2007, 11:05 上午匿名:
30 十一月 2007, 4:38 下午匿名:
:emtf::emtf::emtf::emtf::emtf:
27 十二月 2007, 10:15 上午匿名:
:emtf::emtf::emtf::emtf::emtf::faint::faint:
27 十二月 2007, 10:16 上午匿名:
12 二月 2008, 9:25 下午匿名:
http://www.cl13.cn
26 五月 2008, 10:58 上午匿名:
27 六月 2008, 4:00 下午匿名:
15 七月 2008, 11:29 上午匿名:
30 七月 2008, 11:15 上午匿名:
1 十二月 2008, 5:14 下午匿名:
thanks very
4 三月 2009, 10:19 上午匿名:
11 三月 2009, 12:52 下午匿名:
9 四月 2009, 9:19 下午匿名:
26 四月 2009, 5:29 上午hello java:
路过学习一下
http://www.dwww.cn
23 七月 2009, 11:27 上午匿名:
18 十一月 2009, 3:25 下午匿名:
2 十二月 2009, 4:38 下午