C# winforms で WebBrowser コントロールを使用しており、カーソルが置かれている Url に関する情報を取得できる必要があります。
したがって、複数の URL を持つデザイン モードの Web ページがあり、カーソルが 1 つの上にあるときに、リンクの ID を返すメソッドを呼び出したいと考えています。
ありがとう
を使用して、現在のスコープ内の要素を取得できることを使用IHTMLCaret
して、そこからカーソル位置を取得できます。IMarkupPointer
webBrowser コントロールには、Links コレクションを持つ Document プロパティがあります。各リンクは、タップできるイベントを持つ HTMLElement です。繰り返しますが、「カーソル」の意味がわかりません。Web の世界では、テキスト ボックスにいる場合を除き、「カーソル」は実際には存在しないためです (コメントで質問するつもりでした)。 MouseOver イベントなどを利用できます。
例:
foreach (HtmlElement element in this.webBrowser1.Document.Links)
{
element.MouseOver += (o, ex) =>
{
Console.WriteLine(ex.ToElement.GetAttribute("HREF"));
};
}
これにより、マウスが置かれている実際の URL が出力されます。
この記事を見ることができます-C# winform で Web ブラウザー コンポーネントをホストする-これを実行するいくつかの方法について説明しています。または、これに直接移動する - Windows フォーム内で Web ページをホストする- 基本的に行う必要があるのは、IE の COM WebBrowser 内で DOM オブジェクトのクリックを処理することです。これを実現するには、C# コード内で Js イベントを処理します。
この種のカスタマイズは、新しいバージョンの .Net Framework の System.Windows.Forms.WebBrowser クラスではなく、AxSHDocVw.AxWebBrowser COM オブジェクトを使用して行う必要があることを覚えています。
これについてもっとデータを送ることができます。私はいくつかのプロジェクトを行いました。それを見つける時間をください ;)。それまでの間、これらのリンクを試してみてください。
に!