UIEvent - 表示简单的用户界面事件
UIEvent 接口表示简单的用户界面事件。
UIEvent 继承了 Event。尽管保留 UIEvent.initUIEvent() 方法是为了向后兼容,您应使用 UIEvent() 构造函数来创建 UIEvent 对象。
有几个接口是该接口的直接或间接后代:MouseEvent,TouchEvent,FocusEvent,KeyboardEvent,WheelEvent,InputEvent 和 CompositionEvent。
构造函数
 UIEvent()
创建一个 UIEvent 对象。
属性
该接口还继承了其父接口 Event 的属性。
 UIEvent.cancelBubble   
一个 Boolean,表示事件的冒泡是否已取消。
 UIEvent.detail 只读 
返回一个 long,根据事件类型,带有事件相应的详细信息。
 UIEvent.isChar  只读 
返回一个 Boolean,表示事件是否产生键字符。
 UIEvent.layerX   只读 
返回事件相对于当前图层的水平坐标。
 UIEvent.layerY   只读 
返回事件相对于当前图层的垂直坐标。
 UIEvent.pageX   只读 
返回事件相对于整个文档的水平坐标。
 UIEvent.pageY   只读 
返回事件相对于整个文档的垂直坐标。
 UIEvent.sourceCapabilities   只读 
返回 InputDeviceCapabilities 接口的实例,该实例提供有关负责生成触摸事件的物理设备的信息。
 UIEvent.view只读 
返回一个 WindowProxy,其中包含生成事件的视图。
 UIEvent.which   只读 
返回所按下键的数字 keyCode,或所按下字母数字键的字符代码(charCode)。
方法
该接口还继承了其父接口 Event 的方法。
 UIEvent.initUIEvent() 
初始化一个 UIEvent 对象。如果事件已经被调度,则此方法不执行任何操作。
规范
| 规范 | 状态 | 备注 | 
|---|---|---|
| InputDeviceCapabilities | 草稿 | 添加了 sourceCapabilities 属性。 | 
| UI Events | 工作草案 | 扩展了 DOM3 | 
| Document Object Model (DOM) Level 3 Events Specification UIEvent 的定义  | 
已过时 | 添加了 UIEvent() 构造函数,弃用了 initUIEvent() 方法,并将 view 的类型从 AbstractView 更改为 WindowProxy。 | 
| Document Object Model (DOM) Level 2 Events Specification UIEvent 的定义  | 
已过时 | 初始定义 | 
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | 
|---|---|---|---|---|---|---|
| 基础支持 | 支持 | 12 | 支持 | 支持 | 支持 | 支持 | 
UIEvent() 构造函数 | 支持 | ≤18 | 11 | 未知 | 支持 | 未知 | 
cancelBubble | 支持 | 12 | 支持 | 支持 | 支持 | 支持 | 
detail | 支持 | 12 | 支持 | 91 | 支持 | 支持 | 
initUIEvent | 支持 | 12 | 支持 | 未知 | 支持 | 未知 | 
isChar | 不支持 | 不支持 | 支持 — 552 | 不支持 | 不支持 | 不支持 | 
layerX | 支持 | 12 | 支持 | 9 | 支持 | 支持 | 
layerY | 支持 | 12 | 支持 | 9 | 支持 | 支持 | 
pageX | 支持 — 443 | 12 | 未知 | 9 | 未知 | 未知 | 
pageY | 支持 — 445 | 12 | 未知 | 9 | 未知 | 未知 | 
sourceCapabilities | 47 | ≤79 | 未知 | 未知 | 支持 | 未知 | 
view | 支持 | 12 | 支持 | 9 | 支持 | 支持 | 
which | 支持 | ≤79 | 支持 | 未知 | 支持 | 支持 | 
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari | 
|---|---|---|---|---|---|---|---|
| 基础支持 | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 | 
UIEvent() 构造函数 | 支持 | 支持 | 未知 | 14 | 未知 | 支持 | 未知 | 
cancelBubble | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 | 
detail | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 | 
initUIEvent | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 未知 | 
isChar | 不支持 | 不支持 | 未知 | 支持 — 552 | 未知 | 不支持 | 不支持 | 
layerX | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 | 
layerY | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 | 
pageX | 支持 — 443 | 支持 — 443 | 未知 | 未知 | 未知 | 未知 | 未知 | 
pageY | 支持 — 445 | 支持 — 445 | 未知 | 未知 | 未知 | 未知 | 未知 | 
sourceCapabilities | 47 | 47 | 未知 | 未知 | 未知 | 支持 | 未知 | 
view | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 | 
which | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 | 
1. click 和 dblclick 事件始终为 0。在 mousedown 和 mouseup 事件中,计数不是元素唯一的计数,而是当前文档的全局单击计数 - 即使在刷新期间也是如此。
2. 除了 Mac OSX 的 Firefox 以外,任何浏览器均不支持 isChar 属性。因此,Firefox 55 中已将其删除以与其他浏览器保持一致。
3. 在版本 45 中替换为 MouseEvent.pageX。
4. 在 Samsung Internet 5.0 中替换为 MouseEvent.pageX。
5. 在版本 45 中替换为 MouseEvent.pageY。
6. 在 Samsung Internet 5.0 中替换为 MouseEvent.pageY。