首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TChromium OnClick

TChromium OnClick
EN

Stack Overflow用户
提问于 2017-08-16 19:26:25
回答 1查看 785关注 0票数 1

我想要跟踪用户在TChromium中点击的次数。我不关心他是否点击“空白”/link/button/image/等。我只想知道他点击了多少次。我希望在TChromium中有Onclick事件,但是没有。我如何知道用户是否点击了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-16 20:16:33

您可以添加事件侦听器。这里的问题是,CEF3不像CEF1那样支持DOM事件侦听器,所以这并不容易(尽管不是不可能)。在我尝试创建一个V8交互示例之前,一个非常糟糕的解决方法可能是这样的。您创建了一个足够惟一的字符串,为整个文档添加了一个事件侦听器,在这种情况下,您将使用该唯一字符串记录消息。在Delphi中,您将等待唯一的日志消息,例如:

代码语言:javascript
复制
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;

Hacky,对吧:)?我会尝试想出更好的方法(使用V8引擎)..

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45712297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档