Импорт локального HTML-файла / кода в веб-браузер - PullRequest
2 голосов
/ 06 декабря 2011

Я пытаюсь получить локальный HTML-файл для отображения в WebBrowser в программе VB.NET.Я использую приведенный ниже код, но, похоже, он не работает, и я не могу понять, почему:

    'first method
    WebBrowser1.Navigate(@".\index.html");

    'second method
    HTML = "normal"
    WebBrowser1.Document.Body.InnerHtml = HTML

Первый метод выдает ошибку "" в консоли отладки, когда я идузапустить его.Если я попробую это без @, я получу пустую белую страницу.Однако, если я изменяю адрес, так что я знаю, что это неверный URL-адрес, я получаю сообщение 404, из-за которого создается впечатление, что он находит файл, но не отображает его?

Второй метод аналогиченво-первых, за исключением того, что не возникает ошибка, это похоже на поиск текста, но ничего не делает.

В обоих примерах я пробовал следующие варианты HTML и обычного текста:

<b>bold</b>normal

и

normal

Почему этот простой код не работает?

Ответы [ 3 ]

5 голосов
/ 06 декабря 2011

@ вещь для C #;вам не нужно это для VB.NET, потому что VB.NET имеет другую (читай: лучше :-)) экранирующую систему для строк.Итак, удалите @ перед строкой, а также избавьтесь от ; после строк, что также является C #.

Проблема в том, что, поскольку вы используете WebBrowser,вам нужен file:/// URL.Есть пара вещей, которые вы можете сделать, наиболее простой из которых, вероятно, является указание вашего WebBrowser на about:blank и непосредственное добавление файла, например:

WebBrowser1.Document.Write(IO.File.ReadAllText("index.html"))

Например.Вы также можете получить абсолютный путь к файлу и использовать его:

WebBrowser1.Navigate("file:///" & IO.Path.GetFullPath(".\index.html"))
2 голосов
/ 20 июля 2015

Я полностью согласен с ответом Minitech. Я делал тестер HTML-кода и написал этот код, и он работал.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim sb As New System.Text.StringBuilder
    sb.AppendLine(RichTextBox1.Text)
    IO.File.WriteAllText("htmltester.html", sb.ToString())
    WebBrowser1.Navigate("file:///" & IO.Path.GetFullPath(".\htmltester.html"))
End Sub
End Class

Этот код работал для моей программы, и я хочу сказать вам, пожалуйста, удалите эти '@' и ';'.

0 голосов
/ 06 июня 2017

Другая найденная опция работает, не нужно создавать файл.

WebBrowser1.DocumentText = strHTML WebBrowser1.Update()

...