【JavaScript】Event浏览器间的兼容性问题

Posted by ARTROY on 2018-06-23

兼容性问题

1
2
3
4
// 用来判断是IE或者Firefox,并赋值给对象。 arguments[0] Firefox
let event = event || window.event || arguments[0], result = null;
// 用来取IE或者FF的对象。
if(event) result = event.result || event.target.result;

Event对象

Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。

  • 什么时候会产生Event 对象呢?
    例如: 当用户单击某个元素的时候,我们给这个元素注册的事件就会触发,该事件的本质就是一个函数,而该函数的形参接收一个event对象。

  • 事件通常与函数结合使用,函数不会在事件发生前被执行!

Event属性

属性 描述
Event.bubbles 一个布尔值,指示事件是否通过DOM冒泡。
Event.cancelBubble 一个历史别名Event.stopPropagation()。true在从事件处理程序返回之前将其值设置为阻止事件的传播。
Event.cancelable 一个布尔值,指示事件是否可取消。
Event.composed 一个布尔值,指示事件是否可以在影子DOM和常规DOM之间的边界上冒泡。
Event.currentTarget 对当前注册的事件目标的引用。这是当前要发送事件的对象; 通过重新定位,这可能会发生变化。
Event.deepPath 一个ArrayDOM的Nodes到该事件已经起泡。
Event.defaultPrevented 指示是否event.preventDefault()已在事件上调用。
Event.eventPhase 指示正在处理事件流的哪个阶段。
Event.explicitOriginalTarget 事件的明确原始目标(特定于Mozilla)。
Event.originalTarget 事件的原始目标,在任何重定向之前(特定于Mozilla)。
Event.returnValue Internet Explorer引入的历史属性,最终被采用到DOM规范中,以确保现有站点继续工作。理想情况下,您应该尝试使用Event.preventDefault()Event.defaultPrevented不是,但returnValue如果您选择这样做,则可以使用。
Event.srcElement 非标准别名(来自旧版本的Microsoft Internet Explorer)Event.target,为了Web兼容性目的,其他一些浏览器开始支持该别名。
Event.target 对最初分派事件的目标的引用。
Event.timeStamp 创建事件的时间(以毫秒为单位)。根据规范,这个值是自纪元以来的时间,但实际上浏览器的定义各不相同; 此外,正在努力改变这一点DOMHighResTimeStamp。
Event.type 事件的名称(不区分大小写)。
Event.isTrusted 指示事件是由浏览器(例如在用户单击之后)还是由脚本(使用事件创建方法,如event.initEvent)启动的。

Event方法

方法 描述
Event.createEvent() 创建一个新事件,然后必须通过调用其initEvent() 方法对其进行初始化。
Event.composedPath() 返回事件的路径(将调用侦听器的对象)。如果阴影根是在ShadowRoot.mode关闭的情况下创建的,则不包括阴影树中的节点。
Event.initEvent() 初始化创建的事件的值。如果事件已经被调度,则此方法不执行任何操作。
Event.preventDefault() 取消事件(如果可以取消)。
Event.stopImmediatePropagation() 对于此特定事件,不会调用其他侦听器。既不附加在同一元素上,也不附加在稍后将遍历的元素上(例如,在捕获阶段)
Event.stopPropagation() 阻止事件在DOM中进一步传播。


支付宝打赏 微信打赏

欣赏此文,打赏一下



-->