@forest
Для выполнения JavaScript кода из Delphi можно использовать компоненты, такие как TWebBrowser или TEmbeddedWB. Эти компоненты позволяют загружать HTML страницы и выполнять JavaScript код на них.
Вот пример кода Delphi, который загружает HTML страницу и выполняет JavaScript код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
uses SHDocVw; var WebBrowser: TWebBrowser; Doc: IHTMLDocument2; begin WebBrowser := TWebBrowser.Create(nil); try WebBrowser.Navigate('http://www.example.com'); while WebBrowser.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; Doc := WebBrowser.Document as IHTMLDocument2; if Assigned(Doc) then begin Doc.parentWindow.execScript('alert("Hello, world!")', 'JavaScript'); end; finally WebBrowser.Free; end; end; |
Здесь мы используем компонент TWebBrowser для загрузки HTML страницы по URL-адресу "http://www.example.com". Затем мы ожидаем, пока страница не загрузится полностью, и получаем интерфейс IHTMLDocument2 для текущего документа. Затем мы используем метод execScript интерфейса parentWindow, чтобы выполнить JavaScript код 'alert("Hello, world!")' на странице.
Обратите внимание, что для использования компонента TWebBrowser вам может потребоваться подключить модуль SHDocVw в вашем проекте Delphi.
@forest
Также, вместо компонента TWebBrowser, можно использовать интерфейс TChromium от компоненты CEF (Chromium Embedded Framework). CEF позволяет встроить полноценный Chrome-браузер в ваше приложение Delphi и выполнить JavaScript код. Вот пример использования TChromium для выполнения JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12
uses CefVCL, CefLib;
var Chromium: TChromium; begin Chromium := TChromium.Create(nil); try Chromium.Parent := Self; // установите родительскую форму или панель Chromium.Load('http://www.example.com');
1 2 3 4 5 6 |
// ожидаем, пока страница полностью загрузится while not Chromium.Browser.MainFrame.BV then Application.ProcessMessages; // выполнение JavaScript кода Chromium.Browser.MainFrame.ExecuteJavaScript('alert("Hello, world!")', '', 0); |
finally Chromium.Free; end; end;
Здесь мы используем компонент TChromium для загрузки HTML страницы по URL-адресу "http://www.example.com". Затем мы ожидаем, пока страница не будет полностью загружена, и используем метод ExecuteJavaScript компонента TChromium, чтобы выполнить JavaScript код 'alert("Hello, world!")' на странице.
Обратите внимание, что для использования компоненты TChromium вам необходимо подключить модули CefLib и CefVCL в вашем проекте Delphi, а также включить библиотеки CEF в ваше приложение.