4

请查看MSDN上的以下优秀文章

我正在BandObjects的帮助下创建一个 IE 工具栏

我可以访问 WebBrowser 控件,但无法实例化修改 DOM 所需的 HTMLDocument。

这是我的代码的摘录:

// 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);
}
4

1 回答 1

3

您只是在本机 IE 对象模型中迷失了方向。这确实使将您自己的 HTML 加载到浏览器中有点痛苦。

如果您实际使用 WebBrowser 控件,这不是问题。胶水隐藏在 .NET 包装器中。它非常简单,您只需分配DocumentText 属性。属性设置器负责喧闹。您不需要 DocumentCompleted 事件处理程序,它全部折叠为您可以放在任何地方的一行代码:

   webBrowser1.DocumentText = "<h1>Hello world</h1>";
于 2013-07-29T19:40:37.447 回答