在一个网站的<form>上,我想设置<input>的文本,并使用TWebBrowser提交该表单。我想在Android上的 Delphi 中使用类似于this answer的方法,但这只适用于Windows。
<form>
<input>
TWebBrowser
s3fp2yjn1#
您链接到的代码只能在Windows上运行,因为它使用VCL Webbrowser组件,该组件依赖于Microsoft IE ActiveX及其引擎(MSHTML),而代码依赖于该引擎(通过使用IHTMLElementCollection等组件和接口)。对于跨平台解决方案,如果您使用的是FMX Webbrowser组件或其他第三方跨平台的Delphi浏览器,则可以使用其执行JavaScript的函数(对于FMX Webbrowser为“EvaluateJavaScript”,如果您使用的是TMS Software的TMSFNCWebbrowser,则为“ExecuteJavascript”),以便通过JavaScript DOM代码编辑、填写甚至提交HTML表单。这是一个优秀的跨平台解决方案,您必须制定一个JavaScript代码片段并将其放入“EvaluateJavaScript”中,注意分隔符和字符串的长度,如以下代码,用于使用值“foo”填充字段(id为“username”)并提交表单(id为“myform”):
procedure FillForm; begin Webbrowser1.EvaluateJavaScript('document.getElementById(''username'').value="foo";' + 'document.getElementById(''myform'').submit();'); end;
否则,如果你是包含该表单的网站的开发人员,或者你知道它是如何处理的(操作页面,请求类型和参数名称),那么你可以简单地通过REST请求发送数据。只需使用REST客户端库并制定一个对操作页面的请求,然后你实现处理接收到的响应的代码。
1条答案
按热度按时间s3fp2yjn1#
您链接到的代码只能在Windows上运行,因为它使用VCL Webbrowser组件,该组件依赖于Microsoft IE ActiveX及其引擎(MSHTML),而代码依赖于该引擎(通过使用IHTMLElementCollection等组件和接口)。
对于跨平台解决方案,如果您使用的是FMX Webbrowser组件或其他第三方跨平台的Delphi浏览器,则可以使用其执行JavaScript的函数(对于FMX Webbrowser为“EvaluateJavaScript”,如果您使用的是TMS Software的TMSFNCWebbrowser,则为“ExecuteJavascript”),以便通过JavaScript DOM代码编辑、填写甚至提交HTML表单。
这是一个优秀的跨平台解决方案,您必须制定一个JavaScript代码片段并将其放入“EvaluateJavaScript”中,注意分隔符和字符串的长度,如以下代码,用于使用值“foo”填充字段(id为“username”)并提交表单(id为“myform”):
否则,如果你是包含该表单的网站的开发人员,或者你知道它是如何处理的(操作页面,请求类型和参数名称),那么你可以简单地通过REST请求发送数据。只需使用REST客户端库并制定一个对操作页面的请求,然后你实现处理接收到的响应的代码。