Как установить URL-адрес в IHTMLDocument2 без перехода на новую страницу - PullRequest
1 голос
/ 18 ноября 2011

Как мне установить URL-адрес htmldocument после того, как я написал ему. Например:

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", он пытается загрузить Google.
Как установить URL, не пытаясь загрузить этот URL?

1 Ответ

0 голосов
/ 21 ноября 2011

Эти шаги должны дать вам документ с правильным 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. Если нет, очистите документ и продолжите.

...