2010-01-27 50 views
3

假設我得到某個頁面的源代碼(例如http://example.com)。我現在想寫這個源代碼的web瀏覽器,使用類似:在WebBrowser中欺騙URL

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">),鏈接等,而不僅僅是圖像。

這可能嗎?

回答

5

你可以嘗試,並在頭部插入一個<base>元素: http://www.w3.org/TR/html4/struct/links.html#edef-BASE

如何插入標籤取決於您所使用的語言,但你的目標應該是在<head>打完直接獲取基本標籤所產生的來源如下:

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

當然,如果已經有文檔中的<base>元素,你應該刪除。

3

如果您嘗試更改地址欄網址,瀏覽器將瀏覽該網址,並且您無能爲力。

但是,在您的HTML中,可能會使用<BASE> tag來爲您的資源「僞造」源URL。

我認爲這是最接近你可以去。