2015-01-20修改:以下方法不适合delphi7,在CEF3源码中限制了delphi_14 up,对于被我误导的朋友说声抱歉
在CEF1中JS调用delphi的方法已经贴过:http://www.cnblogs.com/Delphi-Farmer/archive/2013/05/17/3083794.html
但是CEF3升级了,貌似内核都不一样了,CEF1中的方法失效了,查阅了一些资料,得出如下结果:
delphi代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | interface uses ceflib; //其它 type //这里建议用class 不建议用class(TThread) 不然有些地方要报错 TMyExtension = class (TThread) // or just class, (extension code execute in thread) public class function _geta: string ; end ; TCustomRenderProcessHandler = class (TCefRenderProcessHandlerOwn) protected procedure OnWebKitInitialized; override; end ; implementation class function TMyExtension . _geta: string ; begin Result:= '调用成功' ; end ; procedure TCustomRenderProcessHandler . OnWebKitInitialized; begin TCefRTTIExtension . Register( 'JS_DELPHI' , TMyExtension); end ; initialization CefRenderProcessHandler := TCustomRenderProcessHandler . Create; end . |
JS调用实例:
1 | <script> alert( JS_DELPHI._geta() ); <script> |
这种方式调用时要写注册的类名:JS_DELPHI
在CEF1中是不需要写类名的,这点要注意
有研究DECF3的同学加群啊:DCEF共同进步 426277694
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步