Как получить HTML Высота документа с помощью CEFSHARP? - PullRequest
0 голосов
/ 27 февраля 2020

Я изменяю приложение веб-браузера, чтобы использовать браузер на основе хрома CEFSHARP вместо встроенного элемента управления веб-браузера vb. net, и мне нужно запросить документ html, чтобы иметь возможность установить высоту элемента управления браузера на высота страницы html. В элементе управления веб-браузера VB я использовал следующее для установки высоты.

    WebBrowser.Height = WebBrowser.Document.Body.ScrollRectangle.Height
    WebBrowser.Height = WebBrowser.RectangleToScreen

Как получить свойства документа HTML в CEFSHARP? Я просматривал номер темы и, похоже, вам нужно сделать звонок javascript, но я не могу найти простой пример. У кого-нибудь есть опыт работы с CEFSHARP?

1 Ответ

0 голосов
/ 28 февраля 2020

Ниже приведен код, который я пытаюсь использовать для получения высоты документа HTML, но он не работает. Я вполне уверен, что строка сценария неверна, но, похоже, не может найти правильный синтаксис, чтобы просто получить высоту документа.

Private Sub WWWBrowser_LoadingState(sender As Object, e As LoadingStateChangedEventArgs) Handles WWWBrowser.LoadingStateChanged

    If e.IsLoading = False Then

        Dim script = "(function() { var body = document.body, html = document.documentElement; return  Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); })();"
        Dim task As Task(Of JavascriptResponse) = WWWBrowser.EvaluateScriptAsync(script)
        Dim taskResult As String

        task.ContinueWith(
            Sub(t)
                If t.IsFaulted = False Then
                    Dim response = t.Result 'Error: Result is not a member of Task' 
                    If response.Success And response.Result IsNot Nothing Then
                        taskResult = response.Result
                    End If
                End If
            End Sub)

        MsgBox(task.Result.Result)

    End If


End Sub
...