說,這是我的代碼如何在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