Как получить имя html элемента при наведении мышки в WebBrowser?

Получение имени html элемента при наведении мышки

Сегодня я хочу показать на простом примере, как получить имя html элемента при наведении мышкой в окне компонента WebBrowser.

И так для начала я создам простую html страничку.

html страница

 

Затем создам Windows Forms приложение, после чего добавлю на форму два элемента управления: WebBrowser (wb) и label.

компонент webBrowser

Ну а теперь переходим к написанию кода.

Для начала нам нужно загрузить страницу в WebBrowser, например это можно сделать, с помощью метода Navigate, который в данном примере будет автоматически выполняться с помощью события Form.Load

private void Form1_Load(object sender, EventArgs e)
{
//загрузка страницы
wb.Navigate("адрес сайта");
}

Затем необходимо дождаться полной загрузки страницы в браузере, для этого мы воспользуемся событием DocumentCompleted.

private void wb_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
}

После этого подписываемся на событие MouseOver, с помощью которого мы будет отлавливать наведение мышки на html элемент.

private void wb_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
wb.Document.MouseOver +=
new HtmlElementEventHandler(Document_MouseOver);
}

В обработчике данного события помещаем следующий фрагмент кода:

void Document_MouseOver(object sender, HtmlElementEventArgs e)
{
if (e.ToElement != null)
{
label1.Text = e.ToElement.TagName;
}
}

С помощью свойства ToElement мы получаем html элемент, на который наведена мышка.

Запускаем приложение (F5 или Ctrl+F5) и после того как страница загрузилась, начинаем наводить мышку на любые элементы на странице.

теги

В результате мы получаем имена тегов, которые принадлежат выбранным элементам.

Как получить имя html элемента?

Имя html элемента — это значение, которое содержится внутри атрибута name. Например, данный атрибут есть у элемента параграф, который сейчас расположен на нашей странице.

атрибут name

Если вам необходимо получить данное значение, то вместо TagName указываем свойство Name.

label1.Text = e.ToElement.Name;

результат

имя html элемента

Как получить содержимое html элемента?

Содержимое html элемента получить так же просто, как и все предыдущие значения, для этого всего лишь нужно воспользоваться свойством InnerText.

label1.Text = e.ToElement.InnerText;

результат

содержимое элемента

видео

Читайте также:

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *