gpt4 book ai didi

delphi - TChromium OnClick

转载 作者:行者123 更新时间:2023-12-02 07:57:45 26 4
gpt4 key购买 nike

我想跟踪用户在 TChromium 内点击了多少次。我不在乎他是否点击了“空白”/链接/按钮/图像/等。我只想知道他点击了多少次。我希望 TChromium 中有 Onclick 事件,但没有。我如何知道用户是否点击?

最佳答案

您可以添加事件监听器。这里的问题是 CEF3 不像 CEF1 那样支持 DOM 事件监听器,因此这并不容易(但并非不可能)。在我尝试制作 V8 交互示例之前,一个相当肮脏的解决方法可能是这样的。您创建一个足够唯一的字符串,为整个文档添加一个事件监听器,并在这种情况下使用该唯一字符串记录消息。在 Delphi 中,您将等待该独特的日志消息,例如:

const
MyClickMessage = '08B52B44-748F-44BB-AC6C-5179D6C1F523';

procedure TForm1.Chromium1LoadEnd(Sender: TObject; const browser: ICefBrowser;
const frame: ICefFrame; httpStatusCode: Integer);
begin
if frame.IsMain then
frame.ExecuteJavaScript(
'document.addEventListener("click", function(evnt){' +
'console.log("' + MyClickMessage + '");' +
'});',
'',
0);
end;

procedure TForm1.Chromium1ConsoleMessage(Sender: TObject; const browser: ICefBrowser;
const message, source: ustring; line: Integer; out Result: Boolean);
begin
if message = MyClickMessage then
begin
Result := True;
ShowMessage('User clicked!');
end;
end;

哈基,对吧:)?我会尝试想出更好的东西(使用 V8 引擎)..

关于delphi - TChromium OnClick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45712297/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com