Получить идентификатор ссылки для текущей позиции курсора в элементе управления веб-браузером

Мы используем элемент управления WebBrowser в winforms С# и должны иметь возможность получать информацию об URL-адресе, на котором находится курсор.

Итак, у нас есть веб-страница в режиме разработки, которая имеет несколько URL-адресов, когда курсор находится над одним, я хотел бы вызвать метод, который вернет идентификатор ссылки.

Спасибо


person Kev Hunter    schedule 29.01.2009    source источник
comment
Вы имеете в виду, когда мышь находится над ссылкой или когда пользователь выбирает текст ссылки?   -  person BFree    schedule 29.01.2009
comment
Когда курсор находится на ссылке в управлении веб-браузером, независимо от того, используется ли клавиатура или мышь   -  person Kev Hunter    schedule 29.01.2009


Ответы (3)


Вы можете использовать IHTMLCaret, чтобы получить позицию курсора оттуда, используя IMarkupPointer, вы можете получить элемент в текущей области.

person Kev Hunter    schedule 09.02.2009

Элемент управления webBrowser имеет свойство Document с коллекцией Links. Каждая ссылка представляет собой элемент HTML, в котором есть события, к которым вы можете подключиться. Опять же, я не уверен, что вы имеете в виду под «курсором», потому что в веб-мире, если только вы не находитесь в текстовом поле, на самом деле нет «курсора» (это то, что я хотел спросить в своем комментарии), но вы можете подключиться к событию MouseOver и другим подобным вещам.

Пример:

    foreach (HtmlElement element in this.webBrowser1.Document.Links)
    {
        element.MouseOver += (o, ex) =>
        {
            Console.WriteLine(ex.ToElement.GetAttribute("HREF"));
        };
    }

Это распечатает фактический URL-адрес, над которым находится мышь.

person BFree    schedule 29.01.2009

Вы можете ознакомиться с этой статьей — Размещение компонента веб-браузера в C# winform - что объясняет несколько способов сделать это. или перейдите прямо к этому — Размещение веб-страницы внутри формы Windows — в основном что вам нужно сделать, это обработать щелчок объекта DOM внутри COM WebBrowser IE. Вы достигаете этого, обрабатывая события Js внутри кода C#.

Я помню, что такая настройка должна выполняться с использованием COM-объекта AxSHDocVw.AxWebBrowser вместо класса System.Windows.Forms.WebBrowser из более новых версий .Net Framework.

Я мог бы отправить вам больше данных об этом, я сделал это в каком-то проекте, просто дайте мне время, чтобы найти его ;). А пока попробуйте с этими ссылками.

By!

person brutuscat    schedule 29.01.2009