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

Получить все URLs фреймов в TWebBrowser

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

Получить все URLs фреймов в TWebBrowser

Звонок в компьютерную контору:
- У меня с модемом проблемы, компьютер его не видит...
- Как не видит?
- Да пишет все время: "Не могу найти модем... подключите модем".
- А вы модем подключать к компьютеру пробовали?
- Хм... нет... Как-то в голову не приходило.


procedure TForm1.Button2Click(Sender: TObject); 
var 
  i: Integer; 
begin 
  Listbox1.Clear; 
  //if frames available 
  if Webbrowser1.OleObject.Document.Frames.Length <> 0 then 
  begin 
    //walk through all frames and get the url 
    //to the Listbox 
    for i := 0 to Webbrowser1.OleObject.Document.Frames.Length - 1 do 
    begin 
      Listbox1.Items.Add(Webbrowser1.OleObject.Document.Frames.item(i).Document.URL); 
    end; 
  end; 
end;

Программа предназначена для извлечения всех URL-адресов фреймов в компоненте TWebBrowser и отображения их в компоненте Listbox.

Сюда входят шаги:

  1. Событийный обработчик Button2Click вызывается при клике кнопки с именем "Button2".
  2. Процедура очищает любые существующие элементы из списка Listbox, используя Listbox1.Clear.
  3. Затем она проверяет, есть ли какие-либо фреймы в компоненте Webbrowser, используя Webbrowser1.OleObject.Document.Frames.Length. Если нет фреймов, процедура не продолжает выполнение.
  4. Если есть фреймы, она проходит по каждому фрейму с помощью цикла for и извлекает URL каждого фрейма, используя Webbrowser1.OleObject.Document.Frames.Item(i).Document.URL.
  5. Она добавляет каждый извлеченный URL в список Listbox, используя Listbox1.Items.Add.

Альтернативное решение использует более современный подход:

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
  frame: IHTMLFrameElement;
begin
  Listbox1.Clear;

  if Webbrowser1.Document.GetFrames <> nil then
  begin
    for i := 0 to Webbrowser1.Document.GetFrames.Length - 1 do
    begin
      frame := Webbrowser1.Document.GetFrames[i] as IHTMLFrameElement;
      if Assigned(frame) then
        Listbox1.Items.Add(frame.src);
    end;
  end;
end;

В этом альтернативном решении мы используем метод GetFrames интерфейса IHTMLDocument2, чтобы извлечь коллекцию фреймов, и затем проходим по каждому фрейму с помощью цикла for. Мы извлекаем атрибут src каждого фрейма, используя свойство src интерфейса IHTMLFrameElement, и добавляем его в список Listbox.

Обратите внимание, что в этом решении мы используем оператор as, чтобы преобразовать объект фрейма в тип IHTMLFrameElement. Если объект фрейма не является типа IHTMLFrameElement, оператор as вернет nil. Мы используем функцию Assigned, чтобы проверить, не равно ли значение фрейма nil, перед доступом к его свойствам.

В статье описывается способ получения всех URL-адресов фреймов в TWebBrowser с помощью процедуры TForm1.Button2Click(Sender: TObject) и цикла по перебору всех доступных фреймов.


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-10-12 15:18:32/0.0038881301879883/0