zoukankan      html  css  js  c++  java
  • 解决 DCEF3 在 BeforePopup 事件中打开新窗体的问题

    此问题的解决方案从 https://groups.google.com/forum/#!topic/delphichromiumembedded/xzshOr-pjnU 获得。

    procedure TBrowser.ChromiumBrowserBeforePopup(Sender: TObject;
      const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
      targetFrameName: ustring; var popupFeatures: TCefPopupFeatures;
      var windowInfo: TCefWindowInfo; var client: ICefClient;
      var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
      out Result: Boolean);
    begin
      if targetUrl = 'about:blank' then
      begin
        Result := false
      end
      else
      begin
        //ChromiumBrowser.Load(targetUrl);
        PopupUrl := targetUrl;
        SendMessage(Self.Handle, WM_COMMAND, $EF3A, 0);
        Result := true;
      end;
    end;

    声明一个事件用于接收消息。

    procedure CatchPopup(var msg: TMessage); message WM_COMMAND;
    procedure TBrowser.CatchPopup(var msg: TMessage);
    begin
      if Msg.Msg = WM_COMMAND then
      begin
        if Msg.WParam = $EF3A then
        begin
          Framework.CreateTab(2, PopupUrl);
        end;
      end;
    end;
  • 相关阅读:
    用servlet来实现验证码的功能
    Sqlite3 数据库
    xml解析
    Android .9文件
    AsyncTask
    Looper Handler
    URLConnection
    单例模式
    Httpclient访问网络
    json 解析
  • 原文地址:https://www.cnblogs.com/xiefang2008/p/5535222.html
Copyright © 2011-2022 走看看