SpicIE Internet Explorer插件:如何访问呈现的HTML?

时间:2011-10-05 20:29:31

标签: internet-explorer mshtml

我正在尝试使用SpicIE(http://archive.msdn.microsoft.com/SpicIE)编写Internet Explorer(IE8)插件。在OnDocumentComplete方法中,我可以通过执行以下操作来访问页面的HTML:

private static void SamplePlugin_OnDocumentComplete(object pDisp, ref object url){
    SHDocVw.IWebBrowser2 browser = HostInstance.BrowserRef as SHDocVw.IWebBrowser2;
    mshtml.HTMLDocument htmlDocument = browser.Document as mshtml.HTMLDocument;
    String html = htmlDocument.documentElement.outerHTML;
}

我的问题是,一些(大多数)页面在加载初始页面后还有其他回调用的服务器。如何访问显示给用户的最终页面的“呈现”HTML?例如,我正在查看加载的一个站点,然后具有用文本填充DIV的AJAX调用。但是当我使用上面的代码时,我没有得到这个文本。我在加载动态内容之前获取页面。任何想法??

我真的很感激,谢谢!!

1 个答案:

答案 0 :(得分:0)

使用IE8,这是一项几乎不可能完成的任务,因为它不支持mutation events

您需要使用突变事件来检测对DOM所做的更改(这正是将AJAXed信息添加到页面时发生的情况)。因此,您唯一的机会是进行某种轮询以检测更改的元素,但这会产生明显的性能影响。遗憾。