我正在尝试用webclient检索网页html,并用webbrowser在C中显示它#

我正在尝试用webclient检索网页html,并用webbrowser在C中显示它#,browser,webclient,Browser,Webclient,我有以下代码片段: WebClient client = new WebClient(); String htmlCode = client.DownloadString(newurl); webBrowser1.DocumentText = htmlCode; 顺便说一句,webBrowser1是在程序的其他地方全局定义的。同样,“newurl”也是一个有效的url,也在其他地方全局定义 WebClient获取我使用DocumentText传递给webbrowser1的完整html 这会导致

我有以下代码片段:

WebClient client = new WebClient();
String htmlCode = client.DownloadString(newurl);
webBrowser1.DocumentText = htmlCode;
顺便说一句,webBrowser1是在程序的其他地方全局定义的。同样,“newurl”也是一个有效的url,也在其他地方全局定义

WebClient获取我使用DocumentText传递给webbrowser1的完整html

这会导致各种链接、语法、远程javascript和其他错误,就像html已损坏一样。然而,如果我使用

webbrowser1.Navigate(newurl);
目标页面显示得很好

我正在获取源html,以便在显示之前进行更改

很明显,我遗漏了一些东西

有什么想法吗

问候,,
Jim

webBrowser1.DocumentText=htmlCode
将只设置HTML,但不会加载任何链接的资源,如JS、图像、CSS等


如果您想做您似乎想做的事情,您可以通过
WebClient
加载HTML,重写它(包括将相对路径更改为绝对路径或设置基本url),将其写入文件,然后
webbrowser1。导航(“file://path/to/file");

谢谢你,但我需要一些帮助。我理解将相对路径设置为绝对路径,但如果我有一个包含html的文件,并将使用webbrowser1.Navigate(),那么什么是“基本url”以及如何设置“基本url”;您可以交替设置一个基本uri,而不是将路径设置为绝对路径。假设您的原始URL是
http://domain.tld/something.html
,您可以通过在
head
元素中添加
来保留HTML中的路径。再次感谢。我编辑了我检索到的html,并将所有相对URL更改为绝对URL,并在IE中引用了该文件,它就像一个符咒。我的心又在想。吉姆