I have loaded some html text in WebBrowser control (its uri becomes "about:blank"). Now I want to set its Uri to something else without navigating to that link.
WebBrowser
How can I do that?
The webbrowser's document object loads data via a URL moniker. There is a pretty graph in the MSJ 1996 September issue article "Unified Browsing with ActiveX Extensions Brings the Internet to Your Desktop" demonstrating the the relationship about url monikers and the browser.
You can load a moniker or a stream into a document manually via the document's IPersistStreamInit interface. This is what Winform's webbrowser class is doing in its implementation of the DocumentStream and DocumentText properties. The document would call the source's IMoniker::GetDisplayName to get the url. However the load-from-stream implementation in Windows Forms does not implement IMoniker and the loaded document will have a base address of about:blank.
There is a sample on implementing a url moniker at http://www.codeproject.com/KB/miscctrl/csEXWB.aspx. Search LoadHtmlIntoBrowser(string html, string sBaseUrl) on the page.
2.1m questions
2.1m answers
60 comments
57.0k users