0

ページの DocumentComplete イベントの下に IE ツールバー アプリケーションがあります。一部のサイトではうまく機能している BHO (Browser Helper Object) の概念を使用して HTML リンクを無効にしていましたが、AJAX/JQUERY ベースのサイトを閲覧すると、データが動的に入力され、さらにソースコードも動的データに対して表示されない場合、このリンク無効化機能は機能しません.....

ブラウザにロードするときに動的データのコンテンツを無効化または変更する方法は??

HTMLDocument document = (HTMLDocument)webBrowser.Document;
IHTMLElementCollection hh = ((IHTMLElementCollection)document.getElementsByTagName("a"));

foreach (IHTMLElement ht in hh)
{

 ((HTMLAnchorElement)ht).removeAttribute("href", 1);
 ((HTMLAnchorElement)ht).style.color = "#b9b0b0";

}

ヘルプはありますか?

4

2 に答える 2

0

IEのバージョンによって異なります。IE 8までは、DOM Mutationイベントは生成されませんが、ここで説明する代替アプローチがあります。IE 9は、このIEブログで言及されているように、いくつかの基本的なdomミューテーションイベントをサポートしています。また、IE9でサポートされているインターフェイスについては、このMSDNエントリを参照してください。

非常に大雑把なアプローチは、DOMコンテンツの変更を監視するためにタイマーイベントを使用することです。ただし、スレッドの問題に注意し、ウィンドウごとのテキスト情報を保持する必要があります(ウィンドウとは、タブとIFrameコンテンツを意味します)。

別のアプローチは、非同期プラガブルプロトコルを使用してAjaxリクエストを監視し、それに応じて適切なタブ/ウィンドウに通知することです。これは、以前の大雑把なアプローチよりも困難です。

于 2012-08-01T12:36:26.797 に答える
0

上記の問題に対する答えが得られました。以下は、この問題に対して私が実行した解決手順です。

質問で述べたように、ページコンテンツ全体を「MSHTML」オブジェクトに読み込んだだけです

 HTMLDocument document = (HTMLDocument)webBrowser.Document;

また、それを Web ブラウザー コントロールにロードしました。

そこから簡単にデータを読み取ることができ、「href」プロパティを削除しました。

于 2012-09-25T12:13:58.937 に答える