Вот пример VB.Net, если вы пытаетесь получить значение переменной со страницы, загруженной в элемент управления WebBrowser.
Шаг 1) Добавьте ссылку COM в вашем проекте в библиотеку объектов Microsoft HTML
Шаг 2) Затем добавьте этот код VB.Net в форму Form1 для импорта библиотеки mshtml:
Импортирует mshtml
Шаг 3) Добавьте этот код VB.Net над строкой «Public Class Form1»:
Шаг 4) Добавьте элемент управления WebBrowser в ваш проект
Шаг 5) Добавьте этот код VB.Net в функцию Form1_Load:
WebBrowser1.ObjectForScripting = Me
Шаг 6) Добавьте эту подпрограмму VB.Net, которая будет вставлять функцию "CallbackGetVar" в Javascript веб-страницы:
Public Sub InjectCallbackGetVar(ByRef wb As WebBrowser)
Dim head As HtmlElement
Dim script As HtmlElement
Dim domElement As IHTMLScriptElement
head = wb.Document.GetElementsByTagName("head")(0)
script = wb.Document.CreateElement("script")
domElement = script.DomElement
domElement.type = "text/javascript"
domElement.text = "function CallbackGetVar(myVar) { window.external.Callback_GetVar(eval(myVar)); }"
head.AppendChild(script)
End Sub
Шаг 7) Добавьте следующую подпрограмму VB.Net, которую Javascript будет искать при вызове:
Public Sub Callback_GetVar(ByVal vVar As String)
Debug.Print(vVar)
End Sub
Шаг 8) Наконец, чтобы вызвать обратный вызов Javascript, добавьте этот код VB.Net при нажатии кнопки или в любом месте:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
WebBrowser1.Document.InvokeScript("CallbackGetVar", New Object() {"NameOfVarToRetrieve"})
End Sub
Шаг 9) Если вас удивит, что это работает, вы можете прочитать о функции eval Javascript, используемой на шаге 6, что и делает это возможным. Он возьмет строку и определит, существует ли переменная с этим именем, и, если это так, вернет значение этой переменной.