2011-11-18 48 views
1

如何設置一個htmldocument的網址,我寫它了。例如:如何設置的IHTMLDocument2的URL沒有它導航到一個新的頁面

WebBrowser wb = new WebBrowser(); 
wb.Navigate(new Uri(location, UriKind.Absolute)); 
IHTMLDocument2 myDoc = new HTMLDocumentClass(); 
myDoc.write(new object[] { wb.DocumentText}); 
myDoc.close(); 

如果我做了myDoc.url = "http://www.google.com"它試圖加載谷歌。
如何設置網址而不會嘗試加載該網址?

+0

嗯。如果它不會加載谷歌,你會有一個HTML文檔對象處於不一致的狀態。它可以包含一個空的DOM,或一些網站的DOM,但它的URL屬性將持有谷歌的網址... – kol

回答

0

這些步驟應該給你一個文件與正確的URL和自己的內容:

  1. 直接從URL創建文件(這樣你就不必在以後設置的URL)
  2. 停止文件下載(因爲你並不需要的內容)與內容
  3. 填充文件

這段代碼演示瞭如何做到這一點:

// 1. Create new document from URL 
IHTMLDocument2 NewDoc = (wb.Document as IHTMLDocument4).createDocumentFromUrl("http://www.stackoverflow.com", "null"); 
// 2. Immediately stop navigating; the URL is still set 
NewDoc.execCommand("Stop", false, null); 
// 3. Now write your stuff to the document 
// ... 

注:這是很難猜測多少內容可以在步驟1和2之間進行下載,因爲裝載異步發生。因此,在執行步驟3之前檢查文檔是否確實是空的可能是不錯的。如果不是,請清除文檔並繼續。

+0

即使是之後對方,但仍發出HTTP請求的命令......即使是中止。如果真的沒有別的辦法,我會在幾天內接受。 – Eugene

相關問題