如何在 Delphi 中调用 JavaScript204


在 Delphi 中调用 JavaScript 代码允许您跨越语言边界,充分利用这两个技术的优势。通过利用 Delphi 的强大功能和 JavaScript 的动态性,您可以开发出功能更丰富、交互性更强的应用程序。

先决条件* Delphi XE2 或更高版本
* 基于 Chromium 的 Web 浏览器(例如 Google Chrome 或 Microsoft Edge)

步骤

1. 创建一个 WebBrowser 组件


在 Delphi 应用程序中,将一个 TWebBrowser 组件添加到您的表单。此组件将充当 JavaScript 执行的环境。

2. 导航到 Web 页面


使用 方法加载要执行 JavaScript 的 Web 页面。
('');

3. 执行 JavaScript


可以使用 方法在 Web 页面中执行 JavaScript 代码。该方法接受一个字符串参数,其中包含要执行的 JavaScript 代码。
('alert("Hello from Delphi!");');

4. 处理 JavaScript 事件


要处理 JavaScript 事件(例如单击事件或加载事件),请使用 事件处理程序。在事件处理程序中,您可以使用 对象访问网页文档并处理事件。
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
// 处理 JavaScript 事件
end;

5. 交换数据


要交换 Delphi 代码和 JavaScript 代码之间的数据,请使用 属性。此属性允许您访问网页文档的 IHTMLDocument2 接口,您可以使用该接口交换数据。
// 从 JavaScript 获取数据
var
iData: Integer;
begin
iData := ;
end;
// 向 JavaScript 发送数据
begin
:= 'Hello from Delphi!';
end;

示例以下是使用 Delphi 调用 JavaScript 的完整示例:
unit Unit1;
interface
uses
, , , , , ,
, , , ;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
;
{$R *.dfm}
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
begin
// 处理 JavaScript 事件
if URL = '/' then
begin
// 从 JavaScript 获取数据
var
iData: Integer;
begin
iData := ;
end;
// 在 Delphi 中显示数据
ShowMessage(IntToStr(iData));
// 向 JavaScript 发送数据
:= 'Hello from Delphi!';
end;
end;
end.

注意事项* JavaScript 代码必须在 Web 浏览器组件的上下文中执行。
* 使用 Execute 方法执行 JavaScript 代码可能会阻塞应用程序。
* 处理 JavaScript 事件时,请确保使用适当的线程同步机制。
* 访问 HTML 元素时,请使用 IHTMLDocument2 接口,而不是 .
* 使用 OleObject 属性交换数据时,请确保类型转换正确。

通过利用 Delphi 中的 JavaScript 调用功能,您可以开发出功能更强大、交互性更强的应用程序。通过遵循本文中的步骤,您可以轻松地跨越语言边界并充分利用 Delphi 和 JavaScript 的优势。

2025-02-11


上一篇:JSON 格式化 JavaScript 参数

下一篇:在 PHP 中无缝执行 JavaScript