user1047857
user1047857

Reputation: 133

I am trying to retrieve a webpage html with webclient and display it with webbrowser in C#

I have the following code snippet:

WebClient client = new WebClient();
String htmlCode = client.DownloadString(newurl);
webBrowser1.DocumentText = htmlCode;

BTW, webBrowser1 is defined globally elsewhere in the program. Likewise, "newurl" is a valid url also defined globally elsewhere.

WebClient gets the complete html which I pass to webbrowser1 using DocumentText.

This result is all kinds of link, syntax, remote javascript, and other errors as though the html is corrupted. However, if I use

webbrowser1.Navigate(newurl);

the target page displays just fine.

I am getting the source html so I can make changes before I display it.

Clearly I am missing something.

Any thoughts?

Regards, Jim

Upvotes: 2

Views: 1353

Answers (1)

Eugen Rieck
Eugen Rieck

Reputation: 65342

webBrowser1.DocumentText = htmlCode; will set the HTML only, but will not load any linked-in resources, such as JS, images, CSS, ... .

If you want to do, what you seem to want to do, you can e.g. load the HTML via a WebClient, rewrite it (this includes changing relative paths to absolute ones or setting a base url), write it to a file, then webbrowser1.Navigate("file://path/to/file");

Upvotes: 1

Related Questions