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代码: 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调用实例: <script> alert( JS_DELPHI._geta() ); <script> 这种方式调用时要写注册的类名:JS_DELPHI 在CEF1中是不需要写类名的,这点要注意 有研究DECF3的同学加群啊:DCEF共同进步 426277694 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论