先测试click事件,下面是测试代码:
var addEvent = document.addEventListener ? function(el,type,fn){ el.addEventListener(type,fn,false); }:function(el,type,fn){ el.attachEvent("on"+type,function(){ fn.call(el,window.event); }); } window.onload = function(){ addEvent(document,"click",function(e){ alert(e.button) }); } window.onload = function(){ addEvent(document.body,"click",function(e){ alert(e.button) }); }
文档对象 | 元素节点 | |||||
---|---|---|---|---|---|---|
左 | 中 | 右 | 左 | 中 | 右 | |
IE8 | ○ | ○ | × | ○ | ○ | × |
Firefox 3.6 | ○ | ○ | ○ | ○ | × | × |
Chrome 8.0 | ○ | ○ | × | ○ | ○ | × |
Opera 11.0 | ○ | × | × | ○ | × | × |
- 在元素节点部分,无论是document.body,div,input[type=button]并无区别
- IE8下无论是标准模式或怪异模式也没差异
- IE8无论你是用input还是button标签生成标签,结果都是一样
- 右键捕捉的失败,估计是被contextmenu事件劫持掉了
想全面地捕捉左中右键,估计只能使用正式的鼠标事件,如mousedown。
文档对象 | 元素节点 | |||||
---|---|---|---|---|---|---|
左 | 中 | 右 | 左 | 中 | 右 | |
IE8 | ○ | ○ | ○ | ○ | ○ | ○ |
Firefox 3.6 | ○ | ○ | ○ | ○ | ○ | ○ |
Chrome 8.0 | ○ | ○ | ○ | ○ | ○ | ○ |
Opera 11.0 | ○ | ○ | ○ | ○ | ○ | ○ |