Открыть ссылку все в том же WebBrowser, а не в отдельном окне IE - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Вот его код. Проблемы: 1).Открываеться гугл(на досуге изменю на яндекс), но если ввести поиск и нажать на ссылку, открываеться Интернет Експлорер. Как исправить? 2).Как добавить кнопку "На предыдущую страницу"? 3).Как сделать простую адресную строку?
И еще заголовок не добавляеться

Решение задачи: «Открыть ссылку все в том же WebBrowser, а не в отдельном окне IE»

textual
Листинг программы
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
 
uses
  System.Windows.Forms,
  System.Net;
 
var
  url: string := '';
  w := new WebBrowser;
 
procedure LinkClicked(sender: Object; e: System.EventArgs);
begin
  var link: HtmlElement := w.Document.ActiveElement;
  url := link.GetAttribute('href');
end;
 
procedure MyDocumentCompleted(sender: object; e: WebBrowserDocumentCompletedEventArgs);
begin
  var links: HtmlElementCollection := w.Document.Links;
  
  foreach item: HtmlElement in links do
    item.AttachEventHandler('onclick', LinkClicked);
end;
 
procedure MyNewWindow(sender: Object; e: System.ComponentModel.CancelEventArgs );
begin
  var wb := sender as WebBrowser;
  wb.Navigate(url);
  e.Cancel := true;
end;
 
 
begin
  var myForm := new Form; 
  
  w.Url := new System.Uri('http://vk.com');
  w.Dock := Dockstyle.Fill; 
  
  w.NewWindow += MyNewWindow;
  w.DocumentCompleted += MyDocumentCompleted;
  
  myForm.Controls.Add(w);
  myForm.WindowState := FormWindowState.Maximized; 
  Application.Run(myForm);
end.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • url (строка) - для хранения URL-адреса, который будет получен при клике по ссылке;
    • w (объект WebBrowser) - для отображения веб-страниц.
  2. Определены процедуры:
    • LinkClicked (Object sender, System.EventArgs e) - обрабатывает клик по ссылке, сохраняя URL в переменную url;
    • MyDocumentCompleted (object sender, WebBrowserDocumentCompletedEventArgs e) - выполняется при завершении загрузки документа в WebBrowser, подключает обработчик событий к каждой ссылке;
    • MyNewWindow (Object sender, System.ComponentModel.CancelEventArgs e) - отменяет открытие нового окна браузера и вместо этого навигация осуществляется в том же окне.
  3. Создано окно приложения (Form) и добавлен в него объект WebBrowser (w).
  4. Установлены события:
    • w.DocumentCompleted - вызывается процедура MyDocumentCompleted;
    • w.NewWindow - вызывается процедура MyNewWindow.
  5. Задано начальное URL-адрес для объекта WebBrowser (w).
  6. Запущена основная программа, которая включает в себя создание и отображение окна приложения, а также обработку событий.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5
Похожие ответы