私は自分の Web ブラウザー コントロールでユーザーが選択したテキストを取得する方法を見つけようとしていましたが、msdn やその他のリソースを掘り下げてもうまくいきませんでした。実際にこれを行う方法があるかどうか疑問に思っていました。多分私は単に何かを逃した。
これに関するヘルプやリソースに感謝します。
ありがとう
私は自分の Web ブラウザー コントロールでユーザーが選択したテキストを取得する方法を見つけようとしていましたが、msdn やその他のリソースを掘り下げてもうまくいきませんでした。実際にこれを行う方法があるかどうか疑問に思っていました。多分私は単に何かを逃した。
これに関するヘルプやリソースに感謝します。
ありがとう
WebBrowser コントロールの Document.DomDocument プロパティを使用し、これを Microsoft.mshtml 相互運用アセンブリで提供される IHtmlDocument2 インターフェイスにキャストする必要があります。これにより、IE で実際に実行されている Javascript で利用できる完全な DOM にアクセスできます。
これを行うには、最初にプロジェクトへの参照を通常は "C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll" にある Microsoft.mshtml アセンブリに追加する必要があります。複数ある可能性があります。このパスで参照を選択してください。
次に、現在のテキスト選択を取得します。たとえば、次のようにします。
using mshtml;
...
IHTMLDocument2 htmlDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLSelectionObject currentSelection= htmlDocument.selection;
if (currentSelection!=null)
{
IHTMLTxtRange range= currentSelection.createRange() as IHTMLTxtRange;
if (range != null)
{
MessageBox.Show(range.text);
}
}
.NET アプリケーションから完全な DOM にアクセスする方法の詳細については、次を参照してください。
Web サイトを開くコントロールを含む WinForms アプリケーションがあるとします。
Web ブラウザー コントロール内で JavaScript を挿入/実行できるかどうかを確認します。JavaScript を使用すると、選択されたものを見つけて返すことができます。そうでなければ、Web ブラウザー コントロールが内部で選択されているものを認識しているとは思えません。