如何在VB6中使用execScript检索表单值?
喂,这是我的密码 作为字符串的Dim地址 WebBrowser1.Document.parentWindow.execScript(“变量a= document.form1.address.text“JavaScript”)如何在VB6中使用execScript检索表单值?,vb6,Vb6,喂,这是我的密码 作为字符串的Dim地址 WebBrowser1.Document.parentWindow.execScript(“变量a= document.form1.address.text“JavaScript”) 如何将document.form1.address.text的值提取到我的VB6变量address?您可以为窗口提供IDispatch实现。外部,但这在VB6中并不容易实现 使用JS中的位置导航到一个地址更容易,您可以在VB6中的导航事件中捕获该地址,例如http://ca
如何将
document.form1.address.text的值提取到我的VB6变量address
?您可以为窗口提供IDispatch
实现。外部
,但这在VB6中并不容易实现
使用JS中的位置
导航到一个地址更容易,您可以在VB6中的导航
事件中捕获该地址,例如http://callback?param=value¶m2=anothervalue
,检测“回调”主机,解析参数并取消导航。您可以使用DOM
假设我们有一个简单的HTML表单:
<html>
<body>
<form name="form1">
Address: <input type="text" id="address">
</form>
</body>
</html>
编辑:
比那还要简单。您可以直接从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
请注意,.Script.a
中的JS变量名区分大小写(即,.Script.a
不起作用)。花了一些时间才弄明白这一点。如果全局命名空间状态持续存在脚本执行,那么这个解释比我的导航破解要好得多。相关问题:
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