在Web浏览器中欺骗URL

时间:2010-01-27 08:16:23

标签: c# html url browser

假设我获得了某个页面的源代码(例如http://example.com)。我现在想把这个源代码编写成WebBrowser,使用类似的东西:

myWebBrowser.Navigate("about:blank");
myWebBrowser.Document.Write(sourceCode);

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

<img src="/logo.gif" />

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">),链接等,而不仅仅是图片。

这可能吗?

3 个答案:

答案 0 :(得分:5)

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

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

<head><base href="http://example.com"/>

当然,如果文档中已有<base>元素,则应将其删除。

答案 1 :(得分:3)

如果您尝试更改地址栏网址,浏览器会浏览该网址,而您无法做到这一点。

但是,在您的HTML中,可以使用<BASE> tag为您的资源“伪造”源网址。

我认为这是你最接近的。

答案 2 :(得分:3)

您可以在代码中注入<BASE>元素,并声明基数为http://example.com