2

言って、これは私のコードです

文字列としての薄暗いアドレス

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

document.form1.address.textVB6 変数 の値を抽出するにはどうすればよいAddressですか?

4

2 に答える 2

5

DOM を使用できます。

シンプルな HTML フォームがあるとしましょう:

<html>
<body>
    <form name="form1">
        Address: <input type="text" id="address">
    </form> 
</body>
</html>

コントロールにロードし、WebBrowserDOM の準備ができていることを確認したら、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ません)。これを理解するのに時間がかかりました。

于 2013-04-03T23:20:49.830 に答える
2

IDispatch実装を提供することはできますが、window.externalVB6 で行うのは簡単ではありません。

JSで使用して、VB6locationのイベントでキャプチャできるアドレスに移動する方が簡単です。たとえば、「コールバック」ホストを検出し、パラメーターを解析してナビゲーションをキャンセルします。Navigatehttp://callback?param=value&param2=anothervalue

于 2013-04-03T22:34:54.853 に答える