CEF3中js调用delphi内部方法

https://www.cnblogs.com/Delphi-Farmer/p/4103708.html

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

转载于:https://www.cnblogs.com/delphi-xe5/p/9527558.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值