Как выполнить javascript средствами delphi?

Пользователь

от forest , в категории: Другие , 2 года назад

Как выполнить javascript средствами delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marlen , 2 года назад

@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.

Пользователь

от marisa , год назад

@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 в ваше приложение.