我试图让本地 HTML 文件显示在 VB.NET 程序的 WebBrowser
中。我正在使用下面的代码,但它似乎不起作用,而且我不明白为什么:
'first method
WebBrowser1.Navigate(@".\index.html");
'second method
HTML = "normal"
WebBrowser1.Document.Body.InnerHtml = HTML
当我运行第一种方法时,它在调试控制台中产生错误“”。如果我在没有 @
的情况下尝试,我会得到一个空白页面。但是,如果我更改地址,那么我知道它是一个损坏的 URL,我会收到一条 404 消息,这使得它看起来像是在找到文件但没有呈现它?
第二种方法与第一种方法相同,只是没有产生错误,就像找到文本但什么都不做一样。
在这两个示例中,我都尝试了以下 HTML 和纯文本变体:
<b>bold</b>normal
和
normal
为什么这个简单的代码不起作用?
最佳答案
@
用于 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"))
关于html - 将本地 HTML 文件/代码导入 WebBrowser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8405608/