上一部分讲了Delphi根据方法名调用方法,这一部分还有用到,接着上一章;

【主要原理】

通过TEmbeddedWB控件的OnShowMessage事件捕获弹窗来实现,弹窗时定义方法名和参数,在捕获方法名和参数后,根据后方法名调用方法。

function TForm1.wb1ShowMessage(Sender: TObject; HWND: Cardinal; lpstrText,

  lpstrCaption: PWideChar; dwType: Integer; lpstrHelpFile: PWideChar;

  dwHelpContext: Integer; var plResult: Integer): HRESULT;

var

  str_funcName : string;

  str_param    : string;

begin

  if Pos('JsCallBack:',lpstrText)=0 then  //以JsCallBack:开头的信息认为是JS回调

  begin

    Result := S_OK;                       //屏蔽弹窗

    str_funcName := CopyStr(lpstrText,'JsCallBack:',',',False);    //截取JsCallBack:和,之间的字符,CopyStr自己动手写一个吧

    str_param    := CopyStr(lpstrText,'Param:[',']',False);

    ExecuteMethod(Self ,str_funcName ,str_param);                     //根据方法名调用方法

  end;

end;

procedure TForm1.btnJSCallbackClick(Sender: TObject);

var

  str_funcName : string;

  str_param    : string;

  str_alert    : string;

begin

  str_funcName := 'DoJsCall';                                      //方法名

  str_param    := 'abc;                //参数

  str_alert    := 'JsCallBack:'+str_funcName+',Param:['+str_param+']';

  str_alert    := Format('alert(''%s'');',[str_alert]);      //通过alert弹窗  alert('JsCallBack:DoJsCall,Param:[abc]');

  ExecScript(wb1,str_alert);

end;

WebBrowser JS回调delphi的方法 (简单通用)的更多相关文章

  1. CEF3中js调用delphi内部方法

    2015-01-20修改:以下方法不适合delphi7,在CEF3源码中限制了delphi_14 up,对于被我误导的朋友说声抱歉 在CEF1中JS调用delphi的方法已经贴过:http://www ...

  2. 脚本加载后执行JS回调函数的方法

    动态脚本简单示例 // IE下: var HEAD = document.getElementsByTagName('head')[0] || document.documentElement var ...

  3. JS创建类的方法--简单易懂有实例

    版权声明:本文为博主原创文章,转载请注明出处 Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有Class. ...

  4. JSF页面中使用js函数回调后台bean方法并获取返回值的方法

    由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...

  5. 原生JS取代一些JQuery方法的简单实现

    原生JS取代一些JQuery方法的简单实现 下面小编就为大家带来一篇原生JS取代一些JQuery方法的简单实现.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧   1.选 ...

  6. PHP:微信小程序调用【统一下单】【微信支付】【支付回调】API;XML转Array,Array转XML方法(通用)

    1.微信公众号.微信小程序开发过程中,第三方服务器与微信服务器数据交互,需要进行数据转换,必须用到这两个函数: 分别是xml_to_array.array_to_xml ; /** * 输出xml字符 ...

  7. 关于js回调方法 js递归时使用方法

    js中递归调用本身可以这样: function a1(n){ a1(n)}但是如果需要在参数n进行自增的情况下判断会出错: function a1(n){ if(n>10) return 'aa ...

  8. 【转】JS回调函数--简单易懂有实例

    JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...

  9. js中的splice方法和slice方法简单总结

    slice:是截取用的 splice:是做删除 插入 替换用的 slice(start,end): 参数: start:开始位置的索引 end:结束位置的索引(但不包含该索引位置的元素) 例如: va ...

随机推荐

  1. 比较两个ranges(equal,mismatch,lexicographical_compare)

    euqal 比较两个序列是否相等,相等返回true,不相等返回false //版本一:调用重载operator==比较元素 template <class InputIterator1,clas ...

  2. 嵌入式linux查看磁盘占用情况df -h

  3. R语言入门

    引入R的package(库) 首先是要安装TSA库,TSA是作者自己开发的一套基于R的pacakge,里面包含了函数以及数据:安装的方式是在R的控制台(console)中敲入install.packa ...

  4. Android Monkey测试入门

    第一步:搭建环境:主要是安装和搭建java和sdk环境,说白了,对我们安卓开发来说,只要搭建好了Android开发环境,Monkey测试环境基本就是OK的了.可以参考:http://www.cnblo ...

  5. Hadoop 完全分布式部署

    完全分布式部署Hadoop 分析: 1)准备3台客户机(关闭防火墙.静态ip.主机名称) 2)安装jdk 3)配置环境变量 4)安装hadoop 5)配置环境变量 6)安装ssh 7)集群时间同步 7 ...

  6. PHP-不同Str 拼接方法性能对比

    问题 在PHP中,有多种字符串拼接的方式可供选择,共有: 1 . , .= , sprintf, vprintf, join, implode 那么,那种才是最快的,或者那种才是最适合业务使用的,需要 ...

  7. linux二进制安装MariaDB

    第一步:准备账号 [root@centos7 ~]#getent passwd mysql //查看有没有mysql账号(没有的话需要创建) [root@centos7 ~]#useradd -r m ...

  8. sofa-rpc 服务端源码流程走读

    sofa-rpc是阿里开源的一款高性能的rpc框架,这篇文章主要是对sofa-rpc provider启动服务流程的一个代码走读,下面是我简单绘制的一个基本的关系流程图 下面我们根据sofa-rpc代 ...

  9. 一:elasticsearch常用操作总结

    索引 搜索 mapping 分词器 1.创建索引 http://192.168.65.131:9200/smartom_index 2.查看索引: http://192.168.65.131:9200 ...

  10. 通过Word 2016 发布的内容

    从Word 2007 开始就支持的功能的,第一次使用. 在cnBlogs.com的个人设置中允许使用客户端发布:https://i.cnblogs.com/Configure.aspx Word中配置 ...