Пожалуйста, обратите внимание на следующую прекрасную статью доступной на MSDNКак получить интерфейс документа при размещении элемента управления WebBrowser?
Я нахожусь в процессе создания панели инструментов IE с помощью BandObjects
У меня есть доступ к WebBrowser Control, но не в состоянии создать экземпляр HTMLDocument который требуется изменить DOM.
Вот выдержка из моего кода:
// Registering for DocumentComplete envent
Explorer.DocumentComplete += new SHDocVw.DWebBrowserEvents2_DocumentCompleteEventHandler(Explorer_DocumentComplete);
// I am not sure about the following function.
// I am trying to do something as suggested in this MSDN article -
// http://msdn.microsoft.com/en-us/library/aa752047%28v=vs.85%29.aspx#Document
void Explorer_DocumentComplete(object pDisp, ref object URL)
{
IPersistStream pStream;
string htmlText = "<html><h1>Stream Test</h1><p>This HTML content is being loaded from a stream.</html>";
HTMLDocumentClass document = (HTMLDocumentClass)this.Explorer.IWebBrowser_Document;
document.clear();
document.write(htmlText);
IHTMLDocument2 document2 = (IHTMLDocument2)pDisp;
pStream = (IPersistStream)document2.queryCommandValue("IID_IHTMLDocument2");
HtmlDocument objdec = webBroswer.Document;
objdec.Write(htmlText);
}
Я не уверен, что вам нужно создать экземпляр. Я думаю, что у webbrowser есть свойство Document, указывающее на текущий загруженный документ. Используя методы webbrowser, вы можете загрузить (перейти) к другому документу – GolezTrol
Это правильно. Чтобы этот вопрос был полезен, вам необходимо предоставить дополнительную информацию (например, ваш источник) и подробную информацию о том, что происходит с ошибками. – EricLaw
@GolezTrol True, webbrowser имеет свойство документа. Но свойство не позволяет мне установить новый объект Document в текущий объект webbrowser. Мое требование - не перемещаться на другую страницу. Я просто хочу создать новый DOM локально и загрузить его в свойстве Webbroswer Document, чтобы изменения отображались в браузере. – Aakash