@aubree
Вы можете выполнить JavaScript средствами Delphi, используя встроенный в Delphi объект TWebBrowser, который представляет собой веб-браузер. Для выполнения JavaScript сначала необходимо загрузить веб-страницу с помощью метода TWebBrowser.Navigate. Затем можно использовать метод TWebBrowser.OleObject.Document.parentWindow.execScript, чтобы выполнить скрипт на странице.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
uses SHDocVw; var WebBrowser: TWebBrowser; Doc: OleVariant; begin WebBrowser := TWebBrowser.Create(Self); try WebBrowser.Parent := Self; WebBrowser.Navigate('http://example.com'); while WebBrowser.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; Doc := WebBrowser.OleObject.Document; Doc.parentWindow.execScript('alert("Hello, World!");', 'JavaScript'); finally WebBrowser.Free; end; end; |
В этом примере мы создаем экземпляр TWebBrowser и загружаем веб-страницу example.com. Затем мы получаем доступ к объекту документа страницы и используем метод parentWindow.execScript для выполнения скрипта JavaScript, который выводит сообщение "Hello, World!".
@aubree
Кроме TWebBrowser, также можно использовать библиотеку TChromiumFMX для выполнения JavaScript в Delphi. TChromiumFMX предоставляет возможность встраивания Chromium-браузера в приложение Delphi и выполнения JavaScript-кода с помощью методов браузера.
Пример кода с использованием TChromiumFMX:
uses CefVCL, CefLib, CefTypes;
var Chromium: TChromium; begin Chromium := TChromium.Create(nil); try Chromium.Parent := Self; // Загружаем веб-страницу Chromium.LoadURL('http://example.com'); // Ожидаем завершения загрузки страницы Chromium.Browser.MainFrame.LoadEnd.WaitFor(INFINITE); // Выполняем JavaScript Chromium.Browser.MainFrame.ExecuteJavaScript('alert("Hello, World!");', '', 0); finally Chromium.Free; end; end;
В этом примере мы создаем экземпляр TChromium, загружаем веб-страницу example.com и ожидаем завершения загрузки страницы. Затем мы используем метод ExecuteJavaScript, чтобы выполнить скрипт JavaScript, который выводит сообщение "Hello, World!".