美文网首页
事件对象及兼容性处理

事件对象及兼容性处理

作者: McDu | 来源:发表于2017-08-01 16:23 被阅读31次

1. 浏览器自带的行为,即使没有给元素绑定事件,事件也是存在的。比如:

onclick、onmouseover(onmouseenter)、onmouseout(onmouseleave)、onmousedown 、onmouseup (拖拽效果)、onmousewheel、onscroll、
onresize (重置浏览器窗口大小)、onload、onunload(浏览器关闭)、onfocus(文本框获取焦点)、onblur、onkeydown、onkeyup、onchange...

2. MouseEvent:鼠标事件

// DOM0级事件绑定
var oDiv = document.getElementById('oDiv');
oDiv.onclick = function (){      // 当前元素的私有属性
 console.log(arguments);     // 浏览器传入了一个参数值 MouseEvent
};

// DOM2级事件绑定
oDiv.addEventListener("click",function(){   // 定义在 EventTarget 这个类的原型上
  console.log('-----');
},false);

3. KeyboardEvent: 键盘事件

var input = document.getElementById("input");
input.onkeyup = function (e){
  e = e || window.event;
  e.keyCode;   
}

document.body.onkeyup = function(e){
  e = e || window.event;
}

4. 事件的兼容性:

事件的获取:
标准浏览器中是浏览器给方法传递的参数,只需定义形参 e 就可获取,IE6~8 中不会给方法传递参数,需用 window.event 获取。
e.target 在 IE6~8 中不存在,用 e.srcElement 获取。

document.body.onclick = function(e){
  e = e || window.event;
  e.target = e.target || e.srcElement;
  e.pageX = e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft));
}

li 的 hover 在IE6 下不兼容,只有 a 标签的 hover 兼容所有浏览器。如果只是想使用 a 标签实现一些 css 效果,就要去掉 a 标签的默认行为。

var links = document.getElementsByTagName("a");
for(var i = 0; i<links.length;i++){
  links[i].onclick = function(e){
    e = e || window.event;
    // e.preventDefault ? e.preventDefault() : e.returnValue = false;
  return false;
  }
}

5. e.stopPropagation() : IE 6~8 不兼容,用 e.cancelBubble = true 替代。


推荐阅读:
DOM2级事件在IE6 7 8下的兼容性问题及解决方案

相关文章

  • 事件对象及兼容性处理

    1. 浏览器自带的行为,即使没有给元素绑定事件,事件也是存在的。比如: onclick、onmouseover(o...

  • JS的原生事件

    javascript原生的事件包括事件流、处理函数、事件对象等。而在兼容性也有问题。 1事件流 事件流是ie和Ne...

  • js事件冒泡和捕获,阻止冒泡和默认行为

    兼容性都是IE8及以下 事件冒泡: 事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触...

  • UI部分-事件处理

    iOS事件处理- 用户使用App产生的事件及响应方法: iOS中不是任何对象都能处理事件,只有继承UIRespon...

  • 处理事件对象的兼容性

    1.window.event 首先判断时候有参数event对象传入,其次判断是否是IE的事件对象window.ev...

  • 常用事件

    事件 事件的三大要素 事件源 事件类型 事件函数 事件对象 : 事件函数里提供的形参 事件对象兼容性 vareve...

  • 十七、DOM之事件对象 ------ 2020-01-05

    1、通过例子理解事件对象: 2、事件对象中常用的属性: 3、事件对象e中的键盘码的兼容性: 4、事件对象的兼容问题...

  •  iOS触摸事件及响应者链条

    事件及响应者 响应者: 响应者对象是指能够处理事件的对象,即继承UIResponder的对象响应者链条:由很多响应...

  • js事件

    1.事件 (1)事件对象的兼容性写法 event对象常用属性 三个事件的重要坐标: clientX clien...

  • js网页特效(四)事件

    1.事件 (1)事件对象的兼容性写法 event对象常用属性 三个事件的重要坐标: clientX clien...

网友评论

      本文标题:事件对象及兼容性处理

      本文链接:https://www.haomeiwen.com/subject/mtdklxtx.html