2011-10-05 8 views
0

SpicIE(http://archive.msdn.microsoft.com/SpicIE)を使用してInternet Explorer(IE8)プラグインを作成しようとしています。 OnDocumentCompleteメソッド内で、私は、次の手順を実行して、ページのHTMLにアクセスすることができる午前:SpicIE Internet Explorer Plugin:レンダリングされた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にアクセスするにはどうすればよいですか?たとえば、読み込み中のサイトの1つで、DIVにテキストを埋め込むAJAX呼び出しがあります。しかし、上記のコードを使用すると、私はこのテキストを取得していません。私は動的コンテンツが読み込まれる前にページを取得しています。何か案は??

本当にありがとう!

答えて

0

IE8では、これはmutation eventsをサポートしていないため、ほとんど不可能な作業です。

DOMに加えられた変更を検出するためには、突然変異イベントが必要です(これは、AJAXed情報がページに追加されたときとまったく同じです)。したがって、変更された要素を検出するために何らかのポーリングを行うのが唯一のチャンスですが、これは顕著なパフォーマンスの影響を与えます。ごめんなさい。

+0

お返事ありがとうございます。 Spicieを使用して変更された要素のリスニング/ポーリングをどのように提案しますか?副次的なことに、私はIE8の開発ツールでレンダリングされたHTMLを表示できることに気付きました。 – Jared

+0

私はあなたが開発者用ツールに触れることはできないと思います。また、実際に最終的なものかどうかは決して分からないため、ユーザーに「最終ページ」を表示することはできません。 HTMLが絶えず変化しているかもしれません。あなたは何をしようとしているのですか? –

+0

私はデバッガを書いていて、FireBugのHTMLツリー構造のようなものを作るつもりです。 – Jared

関連する問題