2014-03-25 49 views
0

从Internet Explorer中的BHO(浏览器助手对象),当我拥有IWebBrowser2接口时,如何获取当前在Web浏览器中加载的页面的完整源代码?如何获取加载到IWebBrowser2中的页面的源代码?

是否必须从它所在的网址再次下载它,或者是否有办法获取Internet Explorer下载并用于呈现网页的副本?

我尝试获取当前文档的html元素的outerHTML,但它返回已经预处理的源代码。当您在Internet Explorer中查看“查看源代码”时,我需要以与您看到的相同的形式获取它。

谢谢任何​​有用的信息!

回答

2

您可以查询浏览器的Document属性IPersistStreamIPersistFile,然后调用其Save()方法。但是,当查询浏览器的HTML时,您可能会得到处理HTML的HTML,这可能包括DOM脚本的更改。

要获得原始 HTML,您应该直接从源URL下载它,或者至少从浏览器的本地缓存中提取文件。

+0

我最终从源URL下载页面。感觉有点愚蠢的下载页面知道IE浏览器已经隐藏在某处(当你点击查看页面源时它不会再下载),但我没有时间去查找它。 – eltomito

+0

这就是为什么我建议你在去服务器之前从浏览器的缓存中加载文件。例如,['URLDownloadToFile()'](http://msdn.microsoft.com/zh-cn/library/ms775123.aspx)首先检查缓存。或者,您可以使用['GetUrlCacheEntryInfo()'](http://msdn.microsoft.com/en-us/library/windows/desktop/aa384185.aspx)获取缓存URL的本地文件名。 –

相关问题