javascript - 模拟点击DIV

标签 javascript delphi tchromium

我正在使用 TChromium 组件在 Delphi XE4 中开发一个桌面应用程序来显示 Google Voice 网页。

我需要以编程方式开始调用,但找不到触发按钮后面的 javascript 代码的方法(它是一个 DIV)“CONNECT”:

enter image description here

TChromium 允许执行 javascript 代码,我已经设法使用 javascript 代码模拟“CALL”按钮上的点击,该代码使用显示面板的字符“c”模拟按键事件。这是有效的,因为谷歌语音有快捷方式,“c”是开始通话的有效快捷方式。我还可以使用 javascript 在输入字段中设置数字。我的主要问题是我不知道如何模拟点击“CONNECT”:

enter image description here

如您所见,没有 ID,没有 onClick,也没有触发连接按钮的快捷方式。

我可以使用以下代码获取对此 DIV 的引用:

document.getElementById(":87.mi").children[0].children[0].children[5].children[1].children[0].children[0].children[0].children[1];

但是不可能触发附加.click() 的任何内容。我认为这是因为 click() 将触发未定义的 onClick 方法。有什么方法可以知道当有人点击这个 div 时执行了什么 javascript 代码?

如果焦点在“要调用的号码”输入中,我可以按“TAB”导航到“要调用的电话”,然后导航到“记住选择”,最后导航到“连接”,然后按 Enter使它也起作用的关键。我尝试使用与开始时相同的代码来模拟 CALL 按钮,但这次使用 TAB(键码 9 而不是 67)并且它不起作用,因为焦点没有移动。

我尝试使用 delphi 以编程方式执行此操作,还使用 ​​mouse_event、keybd_event、PostKeyExHWND、PostKeyEx32 和 PostMessage 但没有结果,因为焦点没有从“要调用的号码”上移开

目前唯一可用的选项是使用 SetCursorPos 通过 delphi 移动鼠标并模拟单击该按钮计算坐标,但这将是我最后选择的选项,因为我更喜欢 javascript 代码来执行此操作。

欢迎提出任何建议!

最佳答案

我建议下一个解决方案。

在必须从 View 导入的 javascript 文件中,放入下一个代码:

$(".goog-button-base-content").click(function(){
  //CODE HERE
});

你在这里所做的是,每次我们按下具有该类的 div 时,你将启动“CODE HERE”中的逻辑

(抱歉我的英语不好)

希望有用。再见

关于javascript - 模拟点击DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18175963/

相关文章:

javascript - 在 Puppeteer 中将数据输入到多个表单输入中

javascript - 随机化功能的绑定(bind)/分离/append

delphi - 如何在 Firemonkey stringgrid 单元格中使用不同的字体样式和图标

delphi - 在 Delphi 控制台应用程序中的 stdin/stdout 上打开 TStream

delphi - Chromium:如何获取加载页面的所有形式

javascript - 在jQuery中单击时使用alt选择多个img

delphi - 为什么用类型作为键的TDictionary的声明会引发内部L2095错误?

delphi - 如何获取和设置TChromium滚动条位置?

Javascript:在对象中分组数据