Home > SYS_Window > addEventListener
SYS_Window.addEventListener() method
Add an event listener
Signature
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
Parameters
Parameter | Type | Description |
|---|---|---|
type | Event type, current support | |
listener | (ev: any) => any | Event listener callback |
options | { capture?: boolean; once?: boolean; passive?: boolean; signal?: AbortSignal } | (Optional) Optional parameters |
Returns
ISYS_WindowEventListenerRemovableObject | undefined
Event listener method, used to remove the event listener. If it is undefined, it means creating the event listener failed
Remarks
监听直接挂载到原生 window 上,返回的可移除对象可传给 SYS_Window.removeEventListener() 移除; 同一扩展重复注册相同 type 的监听会被替换(非累积),卸载扩展时注册的原生监听会被自动清理。
Example
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