Webbroser コントロールに検索ダイアログ機能を持たせようとしましたが、いくつかの単語を (前方に) 検索し、それらを強調表示する必要があります。このMSDNの質問から次のコードを試しました
private bool FindFirst(string text)
{
IHTMLDocument2 doc = (IHTMLDocument2)browserInstance.Document;
IHTMLSelectionObject sel = (IHTMLSelectionObject)doc.selection;
sel.empty(); // get an empty selection, so we start from the beginning
IHTMLTxtRange rng = (IHTMLTxtRange)sel.createRange();
if (rng.findText(text, 1000000000, 0))
{
rng.select();
return true;
}
return false;
}
ただし、このコードと元の質問のコードはドキュメント全体を検索し range = body.createTextRange()
、範囲を作成するために使用します。特定の要素内で検索したい (たとえば、特定のテキストのみdiv
)
どうやってやるの?