如何在VB6中使用execScript检索表单值?

Nok*_*hen 2 vb6

说,这是我的代码

昏暗的地址作为字符串

WebBrowser1.Document.parentWindow.execScript(“ var a = document.form1.address.text”,“ JavaScript”)

如何提取document.form1.address.textVB6变量的值 Address

Ily*_*sov 5

您可以使用DOM。

假设我们有简单的HTML形式:

<html>
<body>
    <form name="form1">
        Address: <input type="text" id="address">
    </form> 
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

将其加载到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
Run Code Online (Sandbox Code Playgroud)

编辑:

比这更简单。您可以直接从VB6访问字段值:

Address = WebBrowser1.Document.Form1.Address.Value
Run Code Online (Sandbox Code Playgroud)

编辑#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
Run Code Online (Sandbox Code Playgroud)

请注意,其中的JS变量名称.Script.a区分大小写(即.Script.A不起作用)。花了一些时间来解决这个问题。