说,这是我的代码
将地址变暗为字符串
WebBrowser1.Document.parentWindow.execScript("var a = document.form1.address.text", "JavaScript")
如何将值提取document.form1.address.text
到我的 VB6 变量 中Address
?
说,这是我的代码
将地址变暗为字符串
WebBrowser1.Document.parentWindow.execScript("var a = document.form1.address.text", "JavaScript")
如何将值提取document.form1.address.text
到我的 VB6 变量 中Address
?
您可以使用 DOM。
假设我们有简单的 HTML 表单:
<html>
<body>
<form name="form1">
Address: <input type="text" id="address">
</form>
</body>
</html>
在将其加载到WebBrowser
控件中并确保 DOM 准备就绪后,我们可以通过address
以下方式获取字段文本:
Private Sub cmdGetAddressText_Click()
Dim HTMLElement As Object
Dim Address As String
Set HTMLElement = WebBrowser1.Document.GetElementByID("address")
Address = HTMLElement.Value
MsgBox Address
End Sub
编辑:
它甚至比这更简单。您可以直接从 VB6 访问字段值:
Address = WebBrowser1.Document.Form1.Address.Value
编辑#2
如果您愿意,也可以获取 JavaScript 变量的值:
Private Sub cmdJSVar_Click()
Dim Address As String
Call WebBrowser1.Document.parentWindow.execScript("var a=document.form1.address.value; alert(a);")
Address = WebBrowser1.Document.Script.a
MsgBox Address
End Sub
请注意,JS 变量名.Script.a
区分大小写(即.Script.A
不起作用)。花了一些时间才弄清楚这一点。
您可以提供一个IDispatch
实现,window.external
但这并不容易做到 VB6。
更容易location
在 JS 中使用导航到您可以Navigate
在 VB6 中捕获的地址,例如http://callback?param=value¶m2=anothervalue
,检测“回调”主机,解析参数并取消导航。