【问题标题】:Spoofing the URL in a WebBrowser在 WebBrowser 中欺骗 URL
【发布时间】:2011-01-09 20:40:06
【问题描述】:

假设我获得了某个页面的源代码(例如http://example.com)。我现在想将此源代码写入 WebBrowser,使用类似:

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

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

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

WebBrowser 将尝试从about:blank/logo.gif 加载它。我想告诉浏览器“当前地址”是http://example.com,以便它使用http://example.com/logo.gif

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

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

这可能吗?

【问题讨论】:

    标签: c# html url browser


    【解决方案1】:

    您可以在代码中注入&lt;BASE&gt; 元素并声明基数为http://example.com

    【讨论】:

      【解决方案2】:

      如果您尝试更改地址栏 URL,浏览器将通过该 URL 导航,而您对此无能为力。

      但是,在您的 HTML 中,可以使用 &lt;BASE&gt; tag 为您的资源“伪造”源 URL。

      我认为这是你可以去的最接近的地方。

      【讨论】:

        【解决方案3】:

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

        如何插入标签取决于您使用的语言,但您应该直接在 &lt;head&gt; 之后获取基本标签,以便生成的源代码如下:

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

        当然,如果文档中已经有一个&lt;base&gt; 元素,你应该删除它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-27
          • 1970-01-01
          • 1970-01-01
          • 2020-11-08
          • 2016-03-07
          • 2023-03-09
          • 2019-06-05
          相关资源
          最近更新 更多