Event类
class Event
properties:
event.bubbles
event.cancelable
event.currentTarget
event.defaultPrevented
event.eventPhase
event.target
event.type
-“点击”、“鼠标按下”等。event.namespace
-事件名称的命名空间部分(点之后)。就像“click.comp”事件中的“comp”。event.data:any
event.details:any
-event.data
的别名event.keyCode:integer
-密钥代码,参见include/sciter-x-key-codes.hevent.platformKeyCode
-平台的本地密钥代码,例如Windows上WM_KEYDOWN中的wParam。event.code
-keyCode的字符串表示KeyA
,F1
,Enter
.event.altKey
- ALT true/falseevent.ctrlKey
event.metaKey
-command key
在OSX上,win
在Windows上event.shiftKey
event.isOnIcon
-鼠标事件,Sciter特定,如果鼠标在元素图标上则为true-foreground-image
区域,如果它是由CSS定义的。event.button
event.buttons
currentTarget相对坐标:
event.x
:number,CSS pixelsevent.y
:number,CSS pixelsevent.position
:点,CSS像素event.contentPosition
:点,CSS像素:event.position + event.currentTarget.scrollPosition
客户端相对坐标,相对于文档容器(窗口|框架):
event.clientX
:number,CSS pixelsevent.clientY
:number,CSS pixelsevent.clientPoisition
:点,CSS像素窗口相对坐标:
event.windowX
:number,CSS pixelsevent.windowY
:number,CSS pixelsevent.windowPoisition
:点,CSS像素屏幕相对坐标,相对于整个桌面:
event.screenX
:数字,屏幕像素event.screenY
:数字,屏幕像素event.screenPosition
:点,屏幕像素滚动(例如鼠标滚轮)增量:
event.deltaX
:编号event.deltaY
:编号event.delta
:尺寸event.deltaMode|int
- 0 - deltaX/Y是来自触摸设备的像素,1 - deltaX/Y是在lines
中(也称为鼠标滚轮ticks
)。event.relatedTarget
-仅适用于模糊|重点|focusin| focusout事件,参见:relatedTarget。
特性(Sciter特定):
event.x
- sciter特定,坐标是相对的event.y
-到event.currentTarget
-此事件处理程序附加到的元素。event.source
-在某些事件中用于表示辅助source
元素。event.isOnIcon:Element
-鼠标事件,当鼠标在该元素的图标上时,它被设置为元素。元素图标是元素的前景图像(如果有的话),所以当鼠标在图像渲染的区域上时,event.isOnIcon打开。event.reason
-整数,事件类型特定标志。
属性(Sciter特定,手势):
event.delta:
调整平移手势增量的大小,以逻辑(CSS)像素为单位;event.deltaZoom:float
缩放手势增量缩放倍数:currentScale *= evt.deltaZoom
;event.deltaRotation:Angle
缩放手势增量角度:currentRotation += evt.deltaRotation
;
方法:
event.preventDefault()
event.stopImmediatePropagation()
event.stopPropagation()
静态方法:
Event.keyState(key:string): true|false|undefined
返回按键的按下状态。例如:
if(Event.keyState(`CapsLock`))
... CAPS LOCK is on ...
已知事件
鼠标
名称 | 别名 | 描述 |
---|---|---|
mousemove | mouse-move | |
mouseenter | mouse-enter | |
mouseleave | mouse-leave | |
mouseover | mouse-over | 关于mosueenter和mouseover之间的区别,请参见MDN |
mouseout | mouse-out | 关于mosueleave和mouseout之间的区别,请参见MDN |
mouseidle | mouse-idle | 鼠标在元素中保持不移动,该事件触发工具提示显示。 |
mousetick | mouse-tick | 鼠标按下一段时间的元素,周期性的“脉冲”事件。 |
mousedown | mouse-down | |
mouseup | mouse-up | |
wheel | mouse-wheel | |
mousedragrequest | mouse-drag-request | 按下的鼠标在系统定义的阈值后开始移动 |
dblclick | double-click | |
tripleclick | triple-click |
行为
名称 | 别名 | 描述 |
---|---|---|
click | ||
press | 鼠标按下可点击元素 | |
input | 发布的事件,在用户更改某些内容后到达。 | |
change | 同步事件,在用户更改时和屏幕更新之前到达。 | |
changing | 更改前,在文本编辑器中 | |
submit | 在 <form> | |
reset | 在 <form> | |
expand | 某个元素被展开(打开)的通知,例如 option in ` | |
collapse | 某些元素被折叠(关闭)的通知,例如 option in ` | |
statechange | state-change | UI状态更改,例如,插入符号被用户移动,拆分器在框架集中移动等。 |
currentstatechange | current-state-change | :当前状态更改(选择,菜单)。 |
disabledstatechange | disabled-state-change | |
readonlystatechange | readonly-state-change | |
navigation | 该事件是响应于点击超链接而生成的。 event.data 是一个对象 { url:string, target:string } 。在接收阶段使用此事件将防止默认将目标文档加载到窗口或框架中。 | |
contextmenu | context-menu | 元素的上下文菜单请求 |
contextmenusetup | context-menu-setup | 设置上下文菜单的通知,上下文菜单DO<元素是事件.源 |
animationend | animation-end | |
animationstart | animation-start | |
animationloop | animation-loop | |
transitionend | transition-end | |
transitionstart | transition-start | |
mediachange | media-change | 仅当媒体变量发生变化时,事件才会发送到窗口 |
contentchange | content-change | DOM更改通知:添加或删除元素,更改属性 |
inputlangchange | input-lang-change | 用户已切换输入语言 |
pastehtml | paste-html | 由behavior:richtext从剪贴板粘贴HTML时发送 |
pastetext | paste-text | 由behavior:richtext从剪贴板粘贴纯文本时发送 |
pasteimage | paste-image | 由behavior发送:从剪贴板粘贴图像时的richtext |
popuprequest | popup-request | 参见弹出生命周期事件 |
popupready | popupready | 参见弹出生命周期事件 |
popupdismissing | popup-dismissing | 参见弹出生命周期事件 |
popupdismissed | popup-dismissed | 参见弹出生命周期事件 |
tooltiprequest | tooltip-request | 参见弹出生命周期事件 |
重点
名称 | 别名 | 描述 |
---|---|---|
focusin | focus-in | 当焦点移动到容器中的子对象时,将其发送到容器 |
focusout | focus-out | 当焦点移动到容器外时发送到容器 |
focus | ||
blur |
键盘
名称 | 别名 | 描述 |
---|---|---|
keydown | key-down | 按下键盘键 |
keyup | key-up | 按下键盘键 |
keypress | key-char | 按下并按下键盘键,键代码被转换为产生 event.char |
compositionstart | composition-start | IME合成已开始 |
compositionend | composition-end | 输入法合成结束 |
滚动
名称 | 别名 | 描述 |
---|---|---|
scroll | 在可滚动元素的滚动位置改变后, | |
scrollanimationstart | scroll-animation-start | 在滚动动画开始时发送到可滚动元素 |
scrollanimationend | scroll-animation-end | 在滚动动画结束时发送到可滚动元素 |
scrollstepplus | scroll-step-plus | 点击滚动条的一部分 |
scrollstepminus | scroll-step-minus | 点击滚动条的一部分 |
scrollpageplus | scroll-page-plus | 点击滚动条的一部分 |
scrollpageminus | scroll-page-minus | 点击滚动条的一部分 |
scrollsliderpress | scroll-slider-press | 按下滚动滑块 |
scrollsliderrelease | scroll-slider-release | 滚动滑块已释放 |
手势
来自触摸设备的事件集-触摸板/触控板或触摸屏。
名称 | 别名 | 描述 |
---|---|---|
gesturestart | gesture-start | 参见手势处理启动 |
gestureend | gesture-end | 在最后的触摸接触被移除之后发送事件。 |
gesturepress | gesture-press | 当触摸该元素时发送该事件。例如,Android在此类事件上显示扩展圆圈动画。 |
gesturepinch | gesture-pinch | 单击 |
gesturepan | gesture-pan | 平移(滚动)手势事件。 |
gestureswipe | gesture-swipe | 滑动(快速平移)手势事件。 |
手势处理
对于要接收手势事件的元素,它应处理手势开始事件。当进行第一次触摸接触时发送事件。
接收此事件的元素可以调用 element.state.wantsGestures(...)
方法来定义它想要接收的手势。
element.state.wantsGestures(event1,event2,...)
接受元素想要接收的手势事件列表:
"pan-vertical"
-垂直滚动"pan-horizontal"
-水平滚动"zoom"
"rotation"
谨慎
element.state.wantsGestures()
方法只能在 gesture-start
事件处理程序中调用。
尖端
如果请求“旋转”手势,则使用手势捏处理程序中的event.deltaRotation来获取增量角度。
如果请求“缩放”手势,则使用手势捏处理程序中的event.deltaZoom来获取增量缩放。
文档生命周期事件
加载:
名称 | 别名 | 描述 |
---|---|---|
parsed | document-parsed | 文档刚得到一个DOM结构,脚本还没有运行。此事件只能由文档容器(窗口或框架)处理。 |
DOMContentLoaded | document-ready | 文档加载,DOM解析,脚本加载和运行。 |
complete | document-complete | 文档完全加载,脚本运行,HTML中定义的所有资源完成加载(成功或失败)。 |
闭幕式:
名称 | 别名 | 描述 |
---|---|---|
closerequest | document-unload-request | 在文档关闭的第一阶段,此时可以通过调用 event.preventDefault() 来拒绝它。 |
beforeunload | document-before-unload | 文档即将被卸载,脚本命名空间仍在运行。 |
unload | document-unload | 文档已关闭,即将删除。 |
元素的状态变化
注意
这些不是冒泡事件-只传递给元素本身。
名称 | 别名 | 描述 |
---|---|---|
sizechange | size-change | 检测到元素尺寸变化 |
visualstatechange | visibility-state-change | 元素变得可见或不可见,例如由于可见性值更改。 event.reason 是真实的,如果它变得可见。 |
图像
名称 | 别名 | 描述 |
---|---|---|
load | image-load | 图像已加载 |
error | image-error | 出现映像加载错误 |
寻呼机(打印预览)
<frame|pager>
(打印预览)相关事件
名称 | 别名 | 描述 |
---|---|---|
paginationstart | pagination-start | 已在帧/寻呼机上启动分页 |
paginationpage | pagination-page | 一页分页完成 |
paginationend | pagination-ended | 分页已结束 |
拖放
系统拖放事件:
名称 | 别名 | 描述 |
---|---|---|
drag | D&D光标移动到元素上 | |
dragenter | drag-enter | D&D光标进入元素 |
dragleave | drag-leave | D&D光标离开元素 |
drop | 用户通过释放主鼠标按钮删除数据 | |
dragcancel | drag-cancel | 用户通过按ESC键取消D&D操作。 |
willacceptdrop | will-accept-drop | 见下文 |
接受拖放
对于一个元素,为了接受来自系统的D&D的drop,它应该处理will-accept-drop事件,如果event.detail包含可接受的数据,则通过调用 event.stopPropagation()
来消耗该事件
在D&D events中,event.detail是一个具有以下字段的对象
dataType -字符串,主要格式,“text”、“html”、“file”或“json”之一。
数据对象,可以包含一个或多个字段:
text: string
-纯文本数据;html: string
- HTML数据;file : [path1,path2,...] | path0
-单个或多个文件名;json
:any -任何可以被JSON.stringify'ed艾德的数据;
启动拖放
调用窗口.performDrag(.)启动D&D行动
event.detail = { dataType: ...; data: {} }
视频
<video>
相关事件
名称 | 别名 | 描述 |
---|---|---|
videoready | video-ready | |
videostart | video-start | |
videostop | video-stop | |
videocoordinate | video-coordinate | |
videoframeready | video-frame-ready |