在WebBrowser中欺骗URL

Sen*_*ful 3 html c# browser url

假设我得到了一些页面的源代码(例如http://example.com).我现在想要将此源代码写入WebBrowser,使用类似于:

myWebBrowser.Navigate("about:blank");
myWebBrowser.Document.Write(sourceCode);
Run Code Online (Sandbox Code Playgroud)

现在,让我们假设在Example.com的主页上,有一个相对的URL,例如:

<img src="/logo.gif" />
Run Code Online (Sandbox Code Playgroud)

WebBrowser将尝试从中加载它about:blank/logo.gif.我想告诉WebBrowser"当前地址"是http://example.com这样的,http://example.com/logo.gif而不是它.

直接写入WebBrowser的Url属性将导致Navigate(),它将删除我写的任何文本.

我正在寻找适用于其他元素的解决方案,例如样式表,javascript(例如<script language="text/javascript" src="myscript.js">),链接等,而不仅仅是图像.

这可能吗?

Rol*_*man 5

您可以尝试<base>在头部插入一个元素:http: //www.w3.org/TR/html4/struct/links.html#edef-BASE

如何插入标记取决于您正在使用的语言,但您应该在结束后直接获取基本标记,<head>以便生成的源读取:

<head><base href="http://example.com"/>
Run Code Online (Sandbox Code Playgroud)

当然,如果<base>文档中已有元素,则应删除该元素.