关于获取EVENT的代码 兼容IE Firefox等主流浏览器

当我们想获取鼠标坐标,或者其他获取键盘操作等事件时需要用到event属性,而Firefox下本身没有window.event方法,让很多人望而生畏,感觉这个方法存在兼容性问题而很少去使用它,放弃了很多效果的实现。

下面是根据前辈分的总结的得到的一些获取event以及鼠标坐标的方法示例,希望对大家有帮助。

// 获取鼠标光标相对于整个页面的位置
function getX(e){
  e=e||window.event;
  var _left = document.documentElement.scrollLeft||document.body.scrollLeft;
  return e.pageX||e.clientX+_left;
};
function getY(e){
  e=e||window.event;
  var _top = document.documentElement.scrollTop||document.body.scrollTop;
  return e.pageY||e.clientY+_top;
};
// 获取 event 兼容
function getEvent(){
  if(document.all) return window.event;
  func=getEvent.caller;
  while(func!=null){
    var arg0=func.arguments[0];
    if(arg0){
      if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)==’object’ && arg0.preventDefault && arg0.stopPropagation)){
        return arg0;
      };
    };
    func=func.caller;
  };
  return null;
};

使用说明:
例如我们获取鼠标的X轴坐标:alert(getX(getEvent()));

看着这个代码不要晕,把上面那一长串代码放进您的JS文件中或者直接放进网页的head中用<script>标签包起来。
然后就直接可以alert(getX(getEvent()));这样引用了。

Comments are closed.