zoukankan      html  css  js  c++  java
  • dcef3 指出一个坑

    dcef3 指出一个坑

    http://ju.outofmemory.cn/entry/80119

    BccSafe's Blog 2014-06-11 2388 阅读
     

    dcef3提供了TChromium,可能会有人想用这个来开发游览器

    可惜这个实现起来有问题

    问题就出在OnBeforePopup这个事件上

    很多人以为只要在这做一个拦截

    让新的TChromium来加载这个新网页即可

    这是一个大坑,我之前发布的游览器也是这样

    get可能表面上还看不出什么问题,

    但如果是个post请求,问题就大了

    一个好好的post在我们这个所谓的游览器里莫名其妙的变成了get请求

    所以开发游览器最好的方法就是不要去用这个TChromium

    或者说凡是涉及到不是那种简单跳转网页的,都不要用TChromium

    你会进坑的

    自己用底层的dcef3

    在这里我放出一段核心代码(参考TChromium的源码)

    另外你还需要自己处理消息循环  CefDoMessageLoopWork

    procedure CreateBrowser;
    var
      info: TCefWindowInfo;
      settings: TCefBrowserSettings;
    begin
      if (FParentRect.IsEmpty) or (FParentHandle = 0) then Exit;
    
      FillChar(info, SizeOf(info), 0);
      info.Style := WS_CHILD or WS_VISIBLE or WS_CLIPCHILDREN or WS_CLIPSIBLINGS or WS_TABSTOP;
      info.parent_window := FParentHandle;
      info.x := FParentRect.left;
      info.y := FParentRect.top;
      info.Width := FParentRect.right - FParentRect.left;
      info.Height := FParentRect.bottom - FParentRect.top;
      FillChar(settings, SizeOf(TCefBrowserSettings), 0);
      settings.size := SizeOf(TCefBrowserSettings);
      GetSettings(settings);
    {$IFDEF CEF_MULTI_THREADED_MESSAGE_LOOP}
      CefBrowserHostCreate(@info, FHandler, FDefaultUrl, @settings,
        TCefRequestContextRef.CreateContext((FHandler as ICefClientHandler).GetRequestContextHandler));
    {$ELSE}
      CefLoadLibDefault;
      FBrowser := CefBrowserHostCreateSync(@info, FClientHandler, FDefaultUrl, @settings,
        TCefRequestContextRef.CreateContext((FClientHandler as ICefClientHandler).GetRequestContextHandler));
      FBrowserId := FBrowser.Identifier;
    {$ENDIF}
    end;
    delphi lazarus opengl 网页操作自动化, 图像分析破解,游戏开发
  • 相关阅读:
    站立会议05
    站立会议04
    站立会议03
    站立会议02
    kettle下载、配置及入门使用-数据库表的复制
    eclipse遇到启动报an error has occurred see the log file错 错误 修改了workplace工作空间
    云时代架构之中国民生银行天眼日志平台架构演进的平凡之路
    云时代架构之微店大数据开发平台架构演进
    云时代架构之微博深度学习平台架构和实践
    云时代架构之蘑菇街交易平台数据库架构演进历程
  • 原文地址:https://www.cnblogs.com/delphi-xe5/p/9538900.html
Copyright © 2011-2022 走看看