Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Вывести список ссылок страницы в TWebBrowser

Delphi , Интернет и Сети , Браузер

Вывести список ссылок страницы в TWebBrowser

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

procedure TForm1.Button1Click(Sender: TObject);
 var
   i: Integer;
 begin
   for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do
     Listbox1.Items.Add(Webbrowser1.OleObject.Document.Links.Item(i));
 end;


 {*****************}

 { if there are frames }

 procedure TForm1.Button2Click(Sender: TObject);
 var
   u : variant;
   v : IDispatch;
   s : string;

   procedure RecurseLinks(htmlDoc: variant);
   var
     BodyElement : variant;
     ElementCo: variant;
     HTMLFrames: variant;
     HTMLWnd : variant;
     j, i : integer;
   begin
     if VarIsEmpty(htmlDoc) then
       exit;
     BodyElement := htmlDoc.body;
     if BodyElement.tagName = 'BODY' then
     begin
       ElementCo := htmlDoc.links;
       j := ElementCo.Length - 1;
       for i := 0 to j do
       begin
         u := ElementCo.item(i);
         s := u.href;
         listLinks.Items.Add(s);
       end;
     end;
     HTMLFrames := htmlDoc.Frames;
     j := HTMLFrames.length - 1;
     for i := 0 to j do
     begin
       HTMLWnd := HTMLFrames.Item(i);
       RecurseLinks(HTMLWnd.Document);
     end;
   end; // RecurseLinks 
begin
   v := WebBrowser1.document;
   listLinks.Clear;
   RecurseLinks(v);
 end;

Код на Delphi! Это код, предназначенный для извлечения ссылок с веб-страницы, загруженной в контроле TWebBrowser, и отображения их в компоненте Listbox.

Давайте разбить два процедура:

Button1Click Эта процедура вызывается при клике кнопки (Button1). Она проходит по всем ссылкам на текущей загруженной веб-странице, используя свойство links объекта Document, который является экземпляром интерфейса IDispatch. Для каждой ссылки она добавляет URL-ссылку в компонент Listbox.

Button2Click Эта процедура вызывается при клике другой кнопки (Button2). Она предназначена для обработкирамок на веб-странице, где рамка может содержать другое HTML-документ. Эта процедура использует рекурсию для обхода всех рамок и извлечения ссылок из каждой.

Работает она следующим образом:

  1. Получает ссылку на объект Document контрола TWebBrowser, используя WebBrowser1.document.
  2. Очищает любые существующие элементы в компоненте Listbox.
  3. Вызывает процедуру RecurseLinks, передавая объект Document как аргумент.

Процедура RecurseLinks: 1. Проверяет, является ли входной htmlDoc пустым и выходит, если так. 2. Получает ссылку на элемент <body> HTML-документа, используя htmlDoc.body. 3. Если элемент body существует, извлекает все ссылки из элемента body, используя свойство links, и добавляет их в компонент Listbox. 4. Затем проходит по всем рамкам в HTML-документе, используя свойство Frames, и рекурсивно вызывает себя с каждым рамкой Document объектом.

В целом, этот код предоставляет способ извлечения ссылок с веб-страниц, загруженных в контроле TWebBrowser, включая те, которые используют рамки.

В статье описывается способ вывода списка ссылок с помощью компонента TWebBrowser в Delphi, для этого используются методы OleObject.Document.links и RecurseLinks для обхода фреймов.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Браузер ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:23:50/0.0054810047149658/1