• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

browser 编程中 Delphi 如何返回数组给 javascript

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
在 Delphi 中使用免费的一个程序 TEmbeddedWB 替换常规的 TWebBrowser 组件。
创建一个自动化对象 MyExternal,以实现 IDispatch 接口。

添加一个 Hello 方法,输出类型设置为 Variant *, 其代码如下:

function TMyExternal.Hello: OleVariant;
var
  arr: OleVariant;
begin
  arr :
= VarArrayCreate([09], varVariant);

  arr[
0] := '1';
  arr[
1] := 432.3;
  arr[
2] := '你好';
  arr[
3] := '哈哈fjsd3435';
  
  result :
= arr;
end;

在主窗体中写如下代码,主要目的是关联 window.external 的扩展实现:

procedure TForm1.FormCreate(Sender: TObject);
var
  path: 
string;
begin
  myBrowser.OnGetExternal :
= BrowserGetExternal;
  Application.ProcessMessages;

  path :
= ExtractFilePath(Application.ExeName) + 'default.htm';
  myBrowser.Go(path);
end;

function TForm1.BrowserGetExternal(
out idisp: IDispatch): HRESULT;
var
  myExternal: TMyExternal;
begin
  myExternal :
= TMyExternal.Create;
  idisp :
= myExternal;
  result :
= S_OK;     
end;

在 HTML 中,记住要用 js 里的 VBArray 来取得返回数组,再转换为 js 的数组:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd"
>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="Neil Chen(木野狐)">
<meta name="keywords" content="">
<meta name="description" content="">
>

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab——功率谱密度计算 2020年四月发布时间:2022-07-18
下一篇:
基于MATLAB GUI的BP神经网络手写字体识别系统发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap