Получение имени html элемента при наведении мышки
Сегодня я хочу показать на простом примере, как получить имя html элемента при наведении мышкой в окне компонента WebBrowser.
И так для начала я создам простую html страничку.
Затем создам Windows Forms приложение, после чего добавлю на форму два элемента управления: WebBrowser (wb) и label.
Ну а теперь переходим к написанию кода.
Для начала нам нужно загрузить страницу в 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. Например, данный атрибут есть у элемента параграф, который сейчас расположен на нашей странице.
Если вам необходимо получить данное значение, то вместо TagName указываем свойство Name.
label1.Text = e.ToElement.Name;
результат
Как получить содержимое html элемента?
Содержимое html элемента получить так же просто, как и все предыдущие значения, для этого всего лишь нужно воспользоваться свойством InnerText.
label1.Text = e.ToElement.InnerText;
результат
видео
Читайте также: