2014-03-25 48 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的本地文件名。 –

相關問題