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
。