Открыть ссылку все в том же 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.
Объяснение кода листинга программы
- Объявлены переменные:
- url (строка) - для хранения URL-адреса, который будет получен при клике по ссылке;
- w (объект WebBrowser) - для отображения веб-страниц.
- Определены процедуры:
- LinkClicked (Object sender, System.EventArgs e) - обрабатывает клик по ссылке, сохраняя URL в переменную url;
- MyDocumentCompleted (object sender, WebBrowserDocumentCompletedEventArgs e) - выполняется при завершении загрузки документа в WebBrowser, подключает обработчик событий к каждой ссылке;
- MyNewWindow (Object sender, System.ComponentModel.CancelEventArgs e) - отменяет открытие нового окна браузера и вместо этого навигация осуществляется в том же окне.
- Создано окно приложения (Form) и добавлен в него объект WebBrowser (w).
- Установлены события:
- w.DocumentCompleted - вызывается процедура MyDocumentCompleted;
- w.NewWindow - вызывается процедура MyNewWindow.
- Задано начальное URL-адрес для объекта WebBrowser (w).
- Запущена основная программа, которая включает в себя создание и отображение окна приложения, а также обработку событий.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д