您可以将 AddEventListener 与 CEF4Delphi 一起使用吗?

Can you use AddEventListener with CEF4Delphi?

提问人:DaveLister 提问时间:7/8/2019 最后编辑:Paulo França LacerdaDaveLister 更新时间:7/25/2019 访问量:1085

问:

我正在使用 Delphi XE2 和 Chromium CEF4Delphi。我正在尝试通过 TChromiumWindow 组件使用网页,并希望检测何时选择/单击元素。

我看到了这个帖子。

Delphi Chromium - 当用户单击网页中的按钮时,在 Delphi 应用程序中启动命令

不幸的是,我在 CEF4Delphi 库中找不到函数 AddEventListenerProc。我也找不到另一种方法来监控按钮/元素点击。

我想使用 TChromiumWindow 组件作为我的应用程序的“前端”,并希望监控用户按钮点击等。

谁能帮忙?我确实尝试了开发人员论坛,但我在那里没有看到太多活动,也无法注册。

非常感谢。.

德尔福

评论


答:

1赞 Salvador Díaz Fau 7/9/2019 #1

DCEF3 项目在这里有一个小组:https://groups.google.com/forum/#!forum/delphichromiumembedded

但是 CEF4Delphi 和 OldCEF4Delphi 项目在这里有一个开发者论坛:https://www.briskbard.com/forum/

该论坛几乎每天都有新帖子,我尽量尽快回复它们,通常在不到 24 小时内。

如果您在创建帐户时遇到问题,请给我发送消息,我将手动激活您的帐户。

您发布的链接非常古老,自 2012 年以来,CEF 中的许多事情都发生了变化。

有几种方法可以检测何时选择、单击 HTML 元素等。

  • 您可以使用 JavaScript 事件(如“onclick”)来调用自定义 JavaScript 扩展。该扩展将向浏览器进程发送进程消息,以通知用户单击该元素。
  • 还可以使用在聚焦 HTML 元素时触发的 GlobalCEFApp.OnFocusedNodeChanged。此事件在“render”进程中执行,因此您还需要向主浏览器进程发送一条进程消息,表明焦点元素已更改。

使用 JSRTTIExtension 或 JSExtension 演示作为应用的模板。

它们向您展示了如何设置“mouseover”事件,该事件调用自定义 JS 扩展中定义的“myextension.mouseover”函数。myextension.mouseover 函数执行 Delphi 代码,并向主浏览器进程发送一条进程消息,其中包含状态栏中显示的一些 HTML 信息。

他们还有一个“MutationObserver”示例,该示例在 JS 扩展中调用泛型“myextension.sendresulttobrowser”函数,该函数将“value”属性发送到浏览器进程。

构建演示,并在完全加载网页时右键单击该网页。然后选择“设置鼠标悬停事件”或“添加突变观察器”选项来测试我所描述的内容。

评论

0赞 DaveLister 7/10/2019
非常感谢萨尔瓦多,我将探讨这些想法。我将重新尝试在论坛上注册(上次我只是没有收到和电子邮件,)干杯。.