如何在TMS WEB Core中为TJSElement触发keyup事件?
在Delphi中触发TJSElement的keyup事件
原JavaScript实现
layTable.querySelector(".dataTable-input").dispatchEvent(new Event("keyup"));
Delphi对应实现代码
在Delphi中,你需要先创建对应的TJSEvent实例,再将其作为参数传入dispatchEvent方法,完整代码如下:
var InputElement: TJSElement; KeyupEvent: TJSEvent; begin // 获取目标输入元素 InputElement := layTable.ElementHandle.querySelector('.dataTable-input') as TJSElement; if Assigned(InputElement) then begin // 构建keyup事件,对应JS中的new Event("keyup") KeyupEvent := TJSEvent.Create('keyup'); try // 触发事件 InputElement.dispatchEvent(KeyupEvent); finally // 释放事件对象 KeyupEvent.Free; end; end; end;
关键说明
- 先通过
querySelector获取目标元素后,需要做非空判断避免空指针错误 TJSEvent.Create('keyup')等价于JS里的new Event("keyup"),直接传入事件类型名称即可- Delphi中创建的JS对象需要手动释放,所以用
try-finally块确保资源回收
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

