You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在禁用JavaScript的TEdgeBrowser中捕获OnKeyDown事件

关于TEdgeBrowser禁用脚本时捕获键盘事件的问题

已实现的JS注入捕获方案

我了解可以通过注入onkeydown JavaScript事件到HTML,并利用Web消息返回按键码的方法:

EdgeBrowser.ExecuteScript("window.onkeydown = function(ev) { window.chrome.webview.postMessage(ev.keyCode); };");

随后在TEdgeBrowser的OnWebMessageReceived事件中从Args参数获取按键码:

procedure TfrmMain.EdgeBrowserWebMessageReceived(Sender: TCustomEdgeBrowser; Args: TWebMessageReceivedEventArgs);
begin
  // parse received WebMessage
end;

但问题是当SettingsInterface.Set_IsScriptEnabled设为false时,上述JavaScript事件会失效。

核心疑问

是否存在无需使用上述JS技术即可在TEdgeBrowser中捕获键盘事件的方法?

已尝试但无效的方法

  • 将TForm的KeyPreview设为true后使用其OnKeyDown事件
  • 通过ApplicationEvents的OnMessage处理WM_KEYDOWN和WM_KEYUP消息

内容的提问来源于stack exchange,提问作者Coder12345

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:32:02