我正在用Delphi XE4开发一个桌面应用程序,使用TChromium组件来显示谷歌语音网页。
我需要以编程方式启动一个调用,但我找不到一种方法来触发按钮后面的javascript代码(它是一个DIV) "CONNECT":

TChromium允许执行javascript代码,我已经设法使用javascript代码来模拟单击"CALL“按钮,该代码使用显示面板的字符"c”来模拟按键事件。这是因为Google Voice有快捷方式,而"c“是一个有效的开始呼叫的快捷方式。另外,使用javascript,我可以在输入字段中设置数字。我的主要问题是我不知道如何模拟点击“连接”:

正如您所看到的,没有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键使其工作。我尝试使用与开始时相同的代码来模拟呼叫按钮,但这次使用的是TAB (键代码为9而不是67),它不起作用,因为焦点没有移动。
我试着用Delphi语言编程,也使用了mouse_event,keybd_event,PostKeyExHWND,PostKeyEx32和PostMessage,但是没有结果,因为焦点不会从“号码到呼叫”转移。
到目前为止,唯一有效的选择是使用SetCursorPos用delphi移动鼠标,并模拟单击该按钮计算坐标,但这将是我选择的最后一个选项,因为我更喜欢使用javascript代码来完成这项工作。
欢迎提出任何建议!
发布于 2013-08-13 04:50:22
我建议下一个解决方案。
在必须从视图导入的javascript文件中,放入以下代码:
$(".goog-button-base-content").click(function(){
//CODE HERE
});您在这里所做的是,每次我们按下包含该类的div时,您将启动"CODE HERE“中的逻辑。
(为我糟糕的英语道歉)
我希望是有用的。再见
https://stackoverflow.com/questions/18175963
复制相似问题