zoukankan      html  css  js  c++  java
  • 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

    delphi lazarus opengl 网页操作自动化, 图像分析破解,游戏开发
  • 相关阅读:
    HDU 4393 Throw nails(贪心加模拟,追及问题)
    【Add Two Numbers】
    【Single Num II】cpp
    【Single Number】cpp
    【Candy】cpp
    【Gas Station】cpp
    【Set Matrix Zeros】cpp
    【Gray Code】cpp
    【Climbing Stairs】cpp
    【Plus One】cpp
  • 原文地址:https://www.cnblogs.com/delphi-xe5/p/9527558.html
Copyright © 2011-2022 走看看