说,这是我的代码如何在VB6中使用execScript检索表单值?
为字符串
WebBrowser1.Document.parentWindow.execScript( “风险价值= document.form1.address.text”, “JavaScript的”)
昏暗地址
我该如何提取document.form1.address.text
的值到我的VB6变量Address
?
说,这是我的代码如何在VB6中使用execScript检索表单值?
为字符串
WebBrowser1.Document.parentWindow.execScript( “风险价值= 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
请注意,.Script.a
中的JS变量名称区分大小写(即.Script.A
将不起作用)。花了一些时间来解决这个问题。
如果全局命名空间状态持续执行脚本,比这个解释是一个比我的导航黑客更好的方法。 – wqw 2013-04-04 11:37:58
您可以提供一个IDispatch
执行到window.external
,但这不容易做VB6。
更容易在JS中使用location
导航到您可以在VB6中的Navigate
事件中捕获的地址,例如, http://callback?param=value¶m2=anothervalue
,检测“回调”主机,解析参数并取消导航。
相关问题:[在vb6的WebBrowser控件中检索Javascript函数的返回值](http://stackoverflow.com/q/9005914/588306) – Deanna 2013-04-05 09:29:47