Home > SYS_Window > addEventListener
SYS_Window.addEventListener() method
新增事件监听
签名
typescript
function addEventListener(
type: ESYS_WindowEventType,
listener: (ev: any) => any,
options?: { capture?: boolean; once?: boolean; passive?: boolean; signal?: AbortSignal },
): ISYS_WindowEventListenerRemovableObject | undefined;1
2
3
4
5
2
3
4
5
参数名
参数 | 类型 | 描述 |
|---|---|---|
type | 事件类型,当前支持 | |
listener | (ev: any) => any | 事件监听回调,当 |
options | { capture?: boolean; once?: boolean; passive?: boolean; signal?: AbortSignal } | (可选) 可选参数 |
返回值
ISYS_WindowEventListenerRemovableObject | undefined
事件监听方法,用于移除事件监听,如若为 undefined 则表示创建事件监听失败
备注
监听直接挂载到原生 window 上,返回的可移除对象可传给 SYS_Window.removeEventListener() 移除; 同一扩展重复注册相同 type 的监听会被替换(非累积),卸载扩展时注册的原生监听会被自动清理。
示例
javascript
// 示例 1:注册 focus 监听(真实场景由用户切换窗口焦点触发,这里用合成事件模拟)
const removable = eda.sys_Window.addEventListener('focus', () => {
console.log('窗口获得焦点');
});
// 检查返回的可移除对象,其中的 type 字段记录了监听的事件类型
console.log('监听注册成功:', removable !== undefined, ',事件类型:', removable.type);
// 模拟一次获得焦点事件,回调同步触发
window.dispatchEvent(new Event('focus'));
// 注销监听,恢复原状
eda.sys_Window.removeEventListener(removable);
console.log('监听已注销');1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14