为了确保兼容性Windows 7,我没有选择最新版的浏览器框架。支持Win7的最高版本是109.0.5414.120,但我却选择了更老的71.0.3578.20版本。为什么呢?因为这个版本经过了两年的用户实际使用考验,稳定性极高,你可能不知道,很多网上下载的浏览器框架并不支持MP4格式的视频播放。而我用的这个71.0.3578.20版本,不仅支持MP4,还能流畅播放各种视频文件。对我来说,71.0.3578.20版本已经足够稳定,功能也完全够用,毕竟,稳定性和实用性才是最重要的。
点击下载:https://download.csdn.net/download/gust2013/90479578
对应的CEF4Delphi 开发组件源码下载
点击下载:https://download.csdn.net/download/gust2013/90479583
这是将所有浏览器过程、函数、属性和事件集中在一起的组件。它包含了创建、修改和销毁网页浏览器所需的一切。
VCL 和 LCL 应用程序使用 TChromium
,而 FireMonkey 应用程序使用 TFMXChromium
。这两个组件都继承自 TChromiumCore
,后者包含了大部分代码,但为了简化,通常会说 TChromium
。
TChromiumCore
也仅在需要时创建许多 CEF 处理程序,例如 CefClient
、CefResourceRequestHandler
等。
TCEFWindowParent
组件用于 VCL 和 LCL 应用程序中,与 TChromium
组件一起使用,以在正常模式下嵌入网页浏览器。
如前所述,正常模式下的浏览器允许 CEF 创建一些原生子控件来显示网页内容。TCEFWindowParent
继承自 TCEFWinControl
,并用作这些子控件的父控件。TCEFWindowParent
还会自动控制这些子控件的大小。有关更多详细信息,请参阅 SimpleBrowser2
演示。
TFMXWindowParent
是一个 FireMonkey 组件,其用途与 TCEFWindowParent
相同,但由于 FMX 的代码结构,它必须继承自 TCommonCustomForm
。
TFMXWindowParent
与 TFMXChromium
组件一起使用,并且必须在运行时创建。有关更多详细信息,请参阅 SimpleFMXBrowser
演示。
此组件可用于 VCL 和 LCL 应用程序。它的用途与 TCEFWindowParent
相同,但它具有一个 Chromium
属性,可以直接链接到 TChromium
组件。
TCEFLinkedWindowParent
会调整 CEF 为正常模式浏览器创建的子控件的大小,并使用链接的 TChromium
组件设置浏览器焦点。
TCEFWindowParent
和 TCEFLinkedWindowParent
在 Windows 上运行良好,您可以使用其中任何一个,但不能在 Linux 或 MacOS 上使用 TCEFWindowParent
。
TBufferPanel
用于 VCL 和 LCL 应用程序中的 OSR 模式浏览器,以绘制浏览器内容。TFMXBufferPanel
具有相同的用途,但用于 FireMonkey 应用程序。
有关更多详细信息,请参阅 SimpleOSRBrowser
演示。
TCEFWorkScheduler
用于 VCL 和 LCL 应用程序中,使用禁用多线程消息循环的 CEF 浏览器。TFMXWorkScheduler
具有相同的用途,但用于 FireMonkey 应用程序。
这些组件使用 GlobalCEFApp.OnScheduleMessagePumpWork
事件中的 delayMs
参数来处理 GlobalCEFApp.DoMessageLoopWork
调用。
VCL 和 LCL 应用程序必须在创建 GlobalCEFApp
之前将 GlobalCEFWorkScheduler
创建为 TCEFWorkScheduler
的实例。
FMX 应用程序必须在创建 GlobalCEFApp
之前将 GlobalFMXWorkScheduler
创建为 TFMXWorkScheduler
的实例。
还必须在销毁 GlobalCEFApp
之前销毁 GlobalCEFWorkScheduler
或 GlobalFMXWorkScheduler
。
有关所有实现细节,请参阅 ExternalPumpBrowser
和 FMXExternalPumpBrowser
演示。
TChromiumWindow
是为了以比使用 TChromium
和 TCEFWindowParent
组合更简单的方式嵌入极其简单的网页浏览器而创建的。
TChromiumWindow
可用于 VCL 和 LCL 应用程序中的正常模式浏览器,但如果您使用许多 TChromium
事件和过程,则应考虑使用其他组件。
有关所有详细信息,请参阅 SimpleBrowser
演示。
TBrowserWindow
是一个 LCL 组件,简化了在正常模式下嵌入网页浏览器的跨平台应用程序的创建。TOSRBrowserWindow
具有相同的用途,但它使用 OSR 模式的浏览器。
如果您使用相同的源代码在 Lazarus 中构建 Windows、Linux 和 MacOS 应用程序,则建议使用这些组件。
TBrowserWindow
和 TOSRBrowserWindow
由 Lazarus 项目管理员之一 Martin_fr(又名 User4martin)创建。
有关更多详细信息,请参阅 Lazarus_any_OS
目录中的所有演示。
TCEFServerComponent
允许您在 VCL、LCL 和 FMX 应用程序中创建一个小型的 HTTP 和 WebSocket 服务器。
它可以用于实现应用程序与本地主机之间的进程间通信(IPC)。
有关更多详细信息,请参阅 SimpleServer
演示。
TCEFUrlRequestClientComponent
允许您从 VCL、LCL 或 FMX 应用程序中发出与任何浏览器无关的 URL 请求。
有关更多详细信息,请参阅 URLRequest
演示。
TCEFSentinel
用作一个计时器,在关闭所有浏览器后检查运行的 CEF 进程数量。
此组件仅在 CEF 或 CEF4Delphi 中存在未解决的关闭问题并在应用程序关闭时生成异常时作为最后手段使用。
这是将所有浏览器过程、函数、属性和事件集成在一起的组件。它包含了创建、修改和销毁网页浏览器所需的所有功能。
VCL 和 LCL 应用程序使用 TChromium
,而 FireMonkey 应用程序使用 TFMXChromium
。这两个组件都继承自 TChromiumCore
,后者包含了大部分代码。为了简化讨论,论坛中通常会提到 TChromium
。
CEF 使用处理程序和多个类来控制网页浏览器,而 TChromiumCore
将这些复杂性隐藏在一个组件中。
某些处理程序必须在每个 TChromiumCore
实例创建时一起创建,但许多处理程序只有在应用程序使用与该处理程序相关的至少一个事件时才会被创建。
在创建浏览器之前,必须为 TChromiumCore
事件分配过程,因为只有在事件被使用时,才会创建触发该事件的处理程序。
某些属性在 TChromiumCore
创建浏览器时使用,需要在调用 TChromiumCore.CreateBrowser
之前设置这些属性。
默认的 CEF 配置使用多线程来提高浏览器性能,该组件中的大多数事件都在这些后台线程的上下文中执行。这可能会导致与 VCL、LCL 和 FMX 控件的问题,因为它们不是线程安全的。
如果使用默认的 CEF 配置,请将所有创建、销毁或修改控件的代码移到 TChromiumCore
事件之外。
默认情况下,TChromiumCore
会处理一个浏览器,但也可以配置为处理多个浏览器,前提是允许 CEF 自动创建所有弹出窗口。
要启用此功能,必须将 TChromiumCore.MultiBrowserMode
设置为 true
,并在 TChromiumCore.OnBeforePopup
事件中将 Result
设置为 false
。
在 TChromiumCore
的多浏览器模式下,所有浏览器触发的事件都将通过同一个 TChromiumCore
实例触发。要区分每个事件是由哪个浏览器触发的,可以比较 TChromiumCore.BrowserId
和 browser.Identifier
。
TChromiumCore
中有多个函数和属性用于处理多浏览器模式下的浏览器数组。
function TChromiumCore.CreateClientHandler(aIsOSR : boolean = True) : boolean;
用于创建客户端处理程序,该处理程序还会创建浏览器所需的大多数处理程序。
function TChromiumCore.CreateClientHandler(var aClient : ICefClient; aIsOSR : boolean = True) : boolean;
当浏览器在弹出窗口或标签页中请求新浏览器时,用于创建客户端处理程序。
procedure TChromiumCore.CloseBrowser(aForceClose : boolean);
用于请求关闭选定的浏览器。它调用 CefBrowserHost.CloseBrowser
方法。
procedure TChromiumCore.CloseAllBrowsers;
为 TChromiumCore
实例处理的所有浏览器调用 CloseBrowser
。
function TChromiumCore.TryCloseBrowser : boolean;
用于关闭浏览器的辅助函数。它调用 CefBrowserHost.TryCloseBrowser
。
function TChromiumCore.SelectBrowser(aID : integer) : boolean;
当 TChromiumCore
使用多浏览器模式时,选择具有 aID
标识符的浏览器。
function TChromiumCore.IndexOfBrowserID(aID : integer) : integer;
返回具有 aID
标识符的浏览器在浏览器数组中的索引。
function TChromiumCore.ShareRequestContext(var aContext : ICefRequestContext; const aHandler : ICefRequestContextHandler = nil) : boolean;
创建一个新的请求上下文,该上下文与当前浏览器的请求上下文共享存储,并使用可选的处理程序。
procedure TChromiumCore.InitializeDragAndDrop(const aDropTargetWnd : HWND);
用于在 OSR 模式下初始化 Windows 中的拖放功能。
procedure TChromiumCore.ShutdownDragAndDrop;
用于在 OSR 模式下关闭 Windows 中的拖放功能。
function TChromiumCore.SetNewBrowserParent(aNewParentHwnd : HWND) : boolean;
用于将浏览器重新定位到不同的 TCEFWindowParent
。
function TChromiumCore.CreateBrowser(aParentHandle : TCefWindowHandle; aParentRect : TRect; const aWindowName : ustring = ''; const aContext : ICefRequestContext = nil; const aExtraInfo : ICefDictionaryValue = nil; aForceAsPopup : boolean = False) : boolean;
用于在全局请求上下文初始化后创建浏览器。在调用此函数之前需要设置所有属性和事件,因为它只会为这些事件创建内部处理程序,并且属性值将用于浏览器初始化。
procedure TChromiumCore.LoadURL(const aURL : ustring; const aFrameName : ustring = '');
用于在指定的框架或主框架中导航到 URL。
procedure TChromiumCore.LoadString(const aHTML : ustring; const aFrameName : ustring = '');
用于在指定的框架或主框架中加载包含 HTML 字符串内容的 DATA URI。
procedure TChromiumCore.LoadResource(const aStream : TCustomMemoryStream; const aMimeType, aCharset : string; const aFrameName : ustring = '');
用于在指定的框架或主框架中加载包含流内容的 DATA URI。
procedure TChromiumCore.LoadRequest(const aRequest: ICefRequest);
加载参数中指定的请求。
procedure TChromiumCore.GoBack;
后退导航。
procedure TChromiumCore.GoForward;
前进导航。
procedure TChromiumCore.Reload;
重新加载页面。
procedure TChromiumCore.ReloadIgnoreCache;
忽略缓存重新加载当前页面。
procedure TChromiumCore.StopLoad;
停止加载。
procedure TChromiumCore.StartDownload(const aURL : ustring);
开始下载指定 URL 的文件。
procedure TChromiumCore.DownloadImage(const imageUrl: ustring; isFavicon: Boolean; maxImageSize: cardinal; bypassCache: Boolean);
开始下载指定 URL 的图像。
procedure TChromiumCore.SimulateMouseWheel(aDeltaX, aDeltaY : integer);
调用 CefBrowserHost.SendMouseWheelEvent
来模拟简单的鼠标滚轮事件。
function TChromiumCore.ClearCertificateExceptions(aClearImmediately : boolean = True) : boolean;
调用 CefRequestContext.ClearCertificateExceptions
清除所有证书异常。
function TChromiumCore.ClearHttpAuthCredentials(aClearImmediately : boolean = True) : boolean;
清除所有 HTTP 身份验证凭据。
function TChromiumCore.CloseAllConnections(aCloseImmediately : boolean = True) : boolean;
清除 Chromium 当前所有的活动连接和空闲连接。
procedure TChromiumCore.RetrieveHTML(const aFrameName : ustring = '');
从指定的框架或主框架中检索所有 HTML 内容。
procedure TChromiumCore.RetrieveText(const aFrameName : ustring = '');
从指定的框架或主框架中检索所有文本内容。
procedure TChromiumCore.GetNavigationEntries(currentOnly: Boolean);
异步检索当前导航条目。
function TChromiumCore.GetFrameNames(var aFrameNames : TStrings) : boolean;
返回所有现有框架的名称。
function TChromiumCore.GetFrameIdentifiers(var aFrameCount : NativeUInt; var aFrameIdentifierArray : TCefFrameIdentifierArray) : boolean;
返回所有现有框架的标识符。
procedure TChromiumCore.ExecuteJavaScript(const aCode, aScriptURL : ustring; const aFrameName : ustring = ''; aStartLine : integer = 0);
在指定的框架或主框架中执行 JavaScript 代码。
procedure TChromiumCore.UpdatePreferences;
使用 TChromiumCore
属性值异步更新浏览器首选项。
procedure TChromiumCore.SavePreferences(const aFileName : string);
将浏览器首选项保存为文本文件。
procedure TChromiumCore.ResolveHost(const aURL : ustring);
调用 CefRequestContext.ResolveHost
将 URL 中的域名解析为 IP 地址列表。
function TChromiumCore.IsSameBrowser(const aBrowser : ICefBrowser) : boolean;
用于检查浏览器参数是否与 TChromiumCore
中选定的浏览器相同。
function TChromiumCore.ExecuteTaskOnCefThread(aCefThreadId : TCefThreadId; aTaskID : cardinal; aDelayMs : Int64 = 0) : boolean;
调用 ExecuteTaskOnCefThread
函数将触发 TChromiumCore.OnExecuteTaskOnCefThread
事件。
procedure TChromiumCore.SetUserAgentOverride(const aUserAgent : ustring; const aAcceptLanguage : ustring = ''; const aPlatform : ustring = '');
调用 Emulation.setUserAgentOverride
DevTools 方法来覆盖用户代理字符串。
procedure TChromiumCore.ClearDataForOrigin(const aOrigin : ustring; aStorageTypes : TCefClearDataStorageTypes = cdstAll);
调用 Storage.clearDataForOrigin
DevTools 方法来清除给定来源的存储数据。
procedure TChromiumCore.ClearCache;
调用 Network.clearBrowserCache
DevTools 方法来清除缓存数据。
function TChromiumCore.DeleteCookies(const url : ustring = ''; const cookieName : ustring = ''; aDeleteImmediately : boolean = False) : boolean;
用于立即或异步删除 Cookie。
function TChromiumCore.VisitAllCookies(aID : integer = 0) : boolean;
触发 TChromiumCore.OnCookiesVisited
事件以访问每个 Cookie。
function TChromiumCore.VisitURLCookies(const url : ustring; includeHttpOnly : boolean = False; aID : integer = 0) : boolean;
触发 TChromiumCore.OnCookiesVisited
事件以访问指定 URL 的 Cookie。
function TChromiumCore.SetCookie(const url, name_, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; same_site : TCefCookieSameSite; priority : TCefCookiePriority; aSetImmediately : boolean = True; aID : integer = 0): Boolean;
设置 Cookie 并触发 TChromiumCore.OnCookieSet
事件。
function TChromiumCore.FlushCookieStore(aFlushImmediately : boolean = True) : boolean;
用于刷新 Cookie。
procedure TChromiumCore.ShowDevTools(const inspectElementAt: TPoint; aWindowInfo: PcefWindowInfo);
调用 CefBrowserHost.ShowDevTools
在单独的浏览器中打开开发者工具。
procedure TChromiumCore.CloseDevTools;
调用 CefBrowserHost.CloseDevTools
关闭开发者工具。
function TChromiumCore.SendDevToolsMessage(const message_: ustring): boolean;
调用 CefBrowserHost.SendDevToolsMessage
发送 DevTools 协议消息。
function TChromiumCore.ExecuteDevToolsMethod(message_id: integer; const method: ustring; const params: ICefDictionaryValue): Integer;
调用 CefBrowserHost.ExecuteDevToolsMethod
执行 DevTools 协议函数。
function TChromiumCore.AddDevToolsMessageObserver(const observer: ICefDevToolsMessageObserver): ICefRegistration;
用于添加自定义的 DevTools 消息观察器。
procedure TChromiumCore.Find(aIdentifier : integer; const aSearchText : ustring; aForward, aMatchCase, aFindNext : Boolean);
调用 CefBrowserHost.Find
在当前网页中搜索文本。
procedure TChromiumCore.StopFinding(aClearSelection : Boolean);
调用 CefBrowserHost.StopFinding
停止在当前网页中搜索文本。
procedure TChromiumCore.Print;
打印当前浏览器内容。
procedure TChromiumCore.PrintToPDF(const aFilePath, aTitle, aURL : ustring);
将当前浏览器内容打印为 PDF 文件。
procedure TChromiumCore.ClipboardCopy;
复制到剪贴板。
procedure TChromiumCore.ClipboardPaste;
从剪贴板粘贴。
procedure TChromiumCore.ClipboardCut;
剪切到剪贴板。
procedure TChromiumCore.ClipboardUndo;
撤销操作。
procedure TChromiumCore.ClipboardRedo;
重做操作。
procedure TChromiumCore.ClipboardDel;
删除操作。
procedure TChromiumCore.SelectAll;
全选操作。
procedure TChromiumCore.IncZoomStep;
增加缩放步长。
procedure TChromiumCore.DecZoomStep;
减少缩放步长。
procedure TChromiumCore.IncZoomPct;
增加缩放百分比。
procedure TChromiumCore.DecZoomPct;
减少缩放百分比。
procedure TChromiumCore.ResetZoomStep;
重置缩放步长。
procedure TChromiumCore.ResetZoomLevel;
重置缩放级别。
procedure TChromiumCore.ResetZoomPct;
重置缩放百分比。
procedure TChromiumCore.ReadZoom;
读取缩放值。
procedure TChromiumCore.WasResized;
在 OSR 模式下通知浏览器内容面板已调整大小。
procedure TChromiumCore.WasHidden(hidden: Boolean);
在 OSR 模式下通知浏览器已隐藏或显示。
procedure TChromiumCore.NotifyScreenInfoChanged;
在 OSR 模式下通知浏览器屏幕信息已更改。
procedure TChromiumCore.NotifyMoveOrResizeStarted;
在 OSR 模式下通知浏览器窗口即将移动或调整大小。
procedure TChromiumCore.Invalidate(type_: TCefPaintElementType = PET_VIEW);
在 OSR 模式下使视图无效。
procedure TChromiumCore.SendExternalBeginFrame;
在 OSR 模式下向 Chromium 发出 BeginFrame
请求。
procedure TChromiumCore.SendKeyEvent(const event: PCefKeyEvent);
向浏览器发送键盘事件。
procedure TChromiumCore.SendMouseClickEvent(const event: PCefMouseEvent; type_: TCefMouseButtonType; mouseUp: Boolean; clickCount: Integer);
向浏览器发送鼠标点击事件。
procedure TChromiumCore.SendMouseMoveEvent(const event: PCefMouseEvent; mouseLeave: Boolean);
向浏览器发送鼠标移动事件。
procedure TChromiumCore.SendMouseWheelEvent(const event: PCefMouseEvent; deltaX, deltaY: Integer);
向浏览器发送鼠标滚轮事件。
procedure TChromiumCore.SendTouchEvent(const event: PCefTouchEvent);
向无窗口浏览器发送触摸事件。
procedure TChromiumCore.SendFocusEvent(setFocus: Boolean);
向浏览器发送焦点事件。
procedure TChromiumCore.SendCaptureLostEvent;
向浏览器发送捕获丢失事件。
procedure TChromiumCore.SendProcessMessage(targetProcess: TCefProcessId; const ProcMessage: ICefProcessMessage; const aFrameName : ustring = '');
使用指定的框架或主框架向目标进程发送消息。
function TChromiumCore.CreateUrlRequest(const request: ICefRequest; const client: ICefUrlrequestClient; const aFrameName : ustring = ''): ICefUrlRequest;
创建一个新的 URL 请求,该请求将被视为源自指定的框架或主框架。
procedure TChromiumCore.SetFocus(focus: Boolean);
设置浏览器是否获得焦点。
procedure TChromiumCore.SetAccessibilityState(accessibilityState: TCefState);
为所有框架设置辅助功能状态。
procedure TChromiumCore.DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations);
当用户将鼠标拖入网页视图时调用此方法。
procedure TChromiumCore.DragTargetDragOver(const event: PCefMouseEvent; allowedOps: TCefDragOperations);
在拖拽操作期间,每次鼠标在网页视图上移动时调用此方法。
procedure TChromiumCore.DragTargetDragLeave;
当用户将鼠标拖出网页视图时调用此方法。
procedure TChromiumCore.DragTargetDrop(const event: PCefMouseEvent);
当用户完成拖拽操作并将对象拖放到网页视图上时调用此方法。
procedure TChromiumCore.DragSourceEndedAt(x, y: Integer; op: TCefDragOperation);
当由 CefRenderHandler.StartDragging
调用启动的拖拽操作结束时调用此方法。
procedure TChromiumCore.DragSourceSystemDragEnded;
当由 CefRenderHandler.StartDragging
调用启动的拖拽操作完成时调用此方法。
procedure TChromiumCore.IMESetComposition(const text: ustring; const underlines : TCefCompositionUnderlineDynArray; const replacement_range, selection_range : PCefRange);
开始新的 IME 组合或更新现有的 IME 组合。
procedure TChromiumCore.IMECommitText(const text: ustring; const replacement_range : PCefRange; relative_cursor_pos : integer);
通过插入指定的文本完成现有的 IME 组合。
procedure TChromiumCore.IMEFinishComposingText(keep_selection : boolean);
通过应用当前的 IME 组合内容完成现有的 IME 组合。
procedure TChromiumCore.IMECancelComposition;
取消现有的 IME 组合并丢弃组合内容。
procedure TChromiumCore.ReplaceMisspelling(const aWord : ustring);
如果当前在可编辑节点中选择了拼写错误的单词,调用此方法将用指定的单词替换它。
procedure TChromiumCore.AddWordToDictionary(const aWord : ustring);
将指定的单词添加到拼写字典中。
procedure TChromiumCore.UpdateBrowserSize(aLeft, aTop, aWidth, aHeight : integer);
在 Linux 中用于调整浏览器内容的大小。
procedure TChromiumCore.UpdateXWindowVisibility(aVisible : boolean);
在 Linux 中用于更新浏览器的可见性。
function TChromiumCore.AddObserver(const observer: ICefMediaObserver): ICefRegistration;
添加一个用于观察 MediaRouter
事件的观察器。
function TChromiumCore.GetSource(const urn: ustring): ICefMediaSource;
返回指定媒体源 URN 的 MediaSource
对象。
procedure TChromiumCore.NotifyCurrentSinks;
触发对所有已注册观察器的 CefMediaObserver.OnSinks
异步调用。
procedure TChromiumCore.NotifyCurrentRoutes;
触发对所有已注册观察器的 CefMediaObserver.OnRoutes
异步调用。
procedure TChromiumCore.CreateRoute(const source: ICefMediaSource; const sink: ICefMediaSink);
在源和接收器之间创建新的路由。
procedure TChromiumCore.GetDeviceInfo(const aMediaSink: ICefMediaSink);
调用 CefMediaSink.GetDeviceInfo
异步检索设备信息。
function TChromiumCore.LoadExtension(const root_directory: ustring; const manifest: ICefDictionaryValue = nil; const handler: ICefExtensionHandler = nil; const requestContext : ICefRequestContext = nil) : boolean;
调用 CefRequestContext.LoadExtension
加载浏览器扩展。
function TChromiumCore.DidLoadExtension(const extension_id: ustring): boolean;
如果此上下文用于加载指定 ID 的扩展,则返回 true
。
function TChromiumCore.HasExtension(const extension_id: ustring): boolean;
如果此上下文可以访问指定 ID 的扩展,则返回 true
。
function TChromiumCore.GetExtensions(const extension_ids: TStringList): boolean;
检索此上下文可以访问的所有扩展的列表。
function TChromiumCore.GetExtension(const extension_id: ustring): ICefExtension;
返回与 extension_id
匹配的扩展,如果没有匹配的扩展,则返回 nil
。
DefaultUrl
浏览器创建后加载的第一个 URL。
Options
用于填充 TCefBrowserSettings
记录的属性,该记录在浏览器创建期间使用。
FontOptions
字体选项。
DefaultEncoding
默认编码。
PDFPrintOptions
用于填充 TCefPdfPrintSettings
记录的属性,该记录在 TChromiumCore.PrintToPDF
调用中使用。
BrowserId
调用 CefBrowser.GetIdentifier
方法返回选定浏览器的全局唯一标识符。
Browser
返回选定浏览器的 CefBrowser
实例。
BrowserById
返回具有指定 ID 的浏览器的 CefBrowser
实例。
BrowserCount
返回启用多浏览器模式时浏览器数组中的浏览器数量。
BrowserIdByIndex
返回启用多浏览器模式时指定数组位置中浏览器的标识符。
CefClient
返回此浏览器中使用的 CefClient
实例。
ReqContextHandler
返回此浏览器中使用的 CefRequestContextHandler
实例。
ResourceRequestHandler
返回此浏览器中使用的 CefResourceRequestHandler
实例。
CefWindowInfo
返回创建浏览器时使用的 TCefWindowInfo
记录。
VisibleNavigationEntry
调用 CefBrowserHost.GetVisibleNavigationEntry
返回选定浏览器的当前可见导航条目。
RequestContext
返回选定浏览器使用的 CefRequestContext
实例。
MediaRouter
返回选定浏览器使用的 CefMediaRouter
实例。
MediaObserver
返回选定浏览器使用的 CefMediaObserver
实例。
MediaObserverReg
返回添加默认 MediaObserver
时获得的 CefRegistration
实例。
DevToolsMsgObserver
返回选定浏览器使用的 CefDevToolsMessageObserver
实例。
DevToolsMsgObserverReg
返回添加默认 DevToolsMessageObserver
时获得的 CefRegistration
实例。
ExtensionHandler
返回选定浏览器使用的 CefExtensionHandler
实例。
MultithreadApp
返回 GlobalCEFApp.MultiThreadedMessageLoop
的值。
IsLoading
调用 CefBrowser.IsLoading
,如果浏览器当前正在加载,则返回 true
。
HasDocument
调用 CefBrowser.HasDocument
,如果浏览器中已加载文档,则返回 true
。
HasView
调用 CefBrowserHost.HasView
,如果此浏览器包装在 CefBrowserView
中,则返回 true
。
HasDevTools
调用 CefBrowserHost.HasDevTools
,如果此浏览器当前有关联的 DevTools 浏览器,则返回 true
。
HasClientHandler
如果 CefClient
具有有效值,则返回 true
。
HasBrowser
如果此组件具有有效的选定浏览器,则返回 true
。
CanGoBack
调用 CefBrowser.CanGoBack
,如果浏览器可以后退导航,则返回 true
。
CanGoForward
调用 CefBrowser.CanGoForward
,如果浏览器可以前进导航,则返回 true
。
IsPopUp
调用 CefBrowser.IsPopUp
,如果窗口是弹出窗口,则返回 true
。
WindowHandle
调用 CefBrowserHost.GetWindowHandle
,返回此浏览器的窗口句柄。
OpenerWindowHandle
调用 CefBrowserHost.GetOpenerWindowHandle
,返回打开此浏览器的浏览器的窗口句柄。
BrowserHandle
返回自动创建的用于显示网页内容的子控件的句柄。
WidgetHandle
返回自动创建的用于显示网页内容的子控件的句柄。
RenderHandle
返回自动创建的用于显示网页内容的子控件的句柄。
FrameIsFocused
如果 CefBrowser.FocusedFrame
具有有效值,则返回 true
。
Initialized
当浏览器完全初始化且未关闭时返回 true
。
RequestContextCache
返回 CefRequestContext.CachePath
中的缓存值。
RequestContextIsGlobal
调用 CefRequestContext.IsGlobal
检查请求上下文是全局上下文还是独立的。
DocumentURL
返回主框架的 URL。
ZoomLevel
返回当前的缩放级别。
ZoomPct
返回当前的缩放百分比。
ZoomStep
返回当前的缩放步长。
WindowlessFrameRate
返回在 OSR 模式下,OnPaint
将被调用的最大帧率(fps)。
CustomHeaderName
自定义 HTTP 头名称。
CustomHeaderValue
自定义 HTTP 头值。
DoNotTrack
设置为 true
以发送 DNT 头。
SendReferrer
设置为 true
以发送引用头。
HyperlinkAuditing
启用超链接审计。
AllowOutdatedPlugins
允许使用过时的插件。
AlwaysAuthorizePlugins
始终授权插件。
SpellChecking
设置为 true
以启用拼写检查器。
SpellCheckerDicts
拼写检查器使用的语言代码列表,例如 es-ES,en-US,fr-FR,de-DE,it-IT
。
HasValidMainFrame
如果主框架存在且有效,则返回 true
。
FrameCount
返回当前存在的框架数量。
DragOperations
返回拖拽操作期间使用的 TCefDragOperation
值。
AudioMuted
如果浏览器的音频被静音,则返回 true
。
SafeSearch
强制在浏览器首选项中启用 Google 安全搜索。
YouTubeRestrict
强制在浏览器首选项中启用 YouTube 限制。
PrintingEnabled
在浏览器首选项中启用打印功能。
AcceptLanguageList
设置浏览器首选项中的接受语言列表。
AcceptCookies
设置浏览器首选项中的 Cookie 策略值。
Block3rdPartyCookies
在浏览器首选项中阻止第三方 Cookie。
MultiBrowserMode
启用多浏览器模式,允许 TChromiumCore
使用一个组件处理多个浏览器。
DefaultWindowInfoExStyle
用于初始化浏览器的默认 ExStyle
值。
Offline
使用 Network.emulateNetworkConditions
DevTools 方法将浏览器设置为离线模式。
NetworkPredictions
设置浏览器首选项中的网络预测选项。
QuicAllowed
在浏览器首选项中启用 Quic 协议。
JavascriptEnabled
在浏览器首选项中启用 JavaScript。
LoadImagesAutomatically
在浏览器首选项中启用自动加载图像。
XDisplay
在 Linux 中获取 Xdisplay
指针。
WebRTCIPHandlingPolicy
设置浏览器首选项中的 WebRTC IP 处理策略。
WebRTCMultipleRoutes
设置浏览器首选项中的 WebRTC 多路由选项。
WebRTCNonproxiedUDP
设置浏览器首选项中的 WebRTC 非代理 UDP 选项。
ProxyType
代理类型。
ProxyScheme
代理方案。
ProxyServer
代理服务器。
ProxyPort
代理端口。
ProxyUsername
代理用户名。
ProxyPassword
代理密码。
ProxyScriptURL
代理脚本 URL。
ProxyByPassList
代理绕过列表。
MaxConnectionsPerProxy
设置浏览器首选项中的每个代理的最大连接数。
OnTextResultAvailable
在 TChromiumCore.RetrieveHTML
或 TChromiumCore.RetrieveText
调用后触发,返回 HTML 或文本结果。
OnPdfPrintFinished
在 TChromiumCore.PrintToPDF
调用后触发,当 PDF 创建完成时。
OnPrefsAvailable
在 TChromiumCore.SavePreferences
调用后触发,当首选项保存完成时。
OnCookiesDeleted
在 TChromiumCore.DeleteCookies
调用后触发,当 Cookie 删除完成时。
OnResolvedHostAvailable
在 TChromiumCore.ResolveHost
调用后触发,返回主机信息。
OnNavigationVisitorResultAvailable
在 TChromiumCore.GetNavigationEntries
调用后触发,返回导航条目。
OnDownloadImageFinished
在 TChromiumCore.DownloadImage
调用后触发,当下载完成时。
OnCookiesFlushed
在 TChromiumCore.FlushCookieStore
调用后触发,当 Cookie 刷新完成时。
OnCertificateExceptionsCleared
在 TChromiumCore.ClearCertificateExceptions
调用后触发,当证书异常清除完成时。
OnHttpAuthCredentialsCleared
在 TChromiumCore.ClearHttpAuthCredentials
调用后触发,当 HTTP 身份验证凭据清除完成时。
OnAllConnectionsClosed
在 TChromiumCore.CloseAllConnections
调用后触发,当所有连接关闭时。
OnExecuteTaskOnCefThread
在 TChromiumCore.ExecuteTaskOnCefThread
调用后触发,在指定的 CEF 线程上下文中执行。
OnCookiesVisited
在 TChromiumCore.VisitAllCookies
调用后触发,返回 Cookie 信息。
OnCookieVisitorDestroyed
在 TChromiumCore.VisitAllCookies
调用后触发,当 ICefCookieVisitor
被销毁时。
OnCookieSet
在 TChromiumCore.SetCookie
调用后触发,当 Cookie 设置完成时。
OnZoomPctAvailable
在调用任何增加、减少或重置缩放的函数后触发,返回新的缩放值。
OnMediaRouteCreateFinished
在 TChromiumCore.CreateRoute
调用后触发,当路由创建完成时。
OnMediaSinkDeviceInfo
在 TChromiumCore.GetDeviceInfo
调用后触发,返回设备信息。
OnBrowserCompMsg
在 Windows 中,当向 CEF 创建的子控件发送消息时触发。
OnWidgetCompMsg
在 Windows 中,当向 CEF 创建的子控件发送消息时触发。
OnRenderCompMsg
在 Windows 中,当向 CEF 创建的子控件发送消息时触发。
OnProcessMessageReceived
OnLoadStart
在导航提交后且浏览器开始加载框架内容之前调用。
OnLoadEnd
当浏览器完成加载框架时调用。
OnLoadError
当导航失败或被取消时调用。
OnLoadingStateChange
当加载状态发生变化时调用。
OnTakeFocus
当浏览器组件即将失去焦点时调用。
OnSetFocus
当浏览器组件请求焦点时调用。
OnGotFocus
当浏览器组件获得焦点时调用。
OnBeforeContextMenu
在显示上下文菜单之前调用。
OnRunContextMenu
用于自定义显示上下文菜单。
OnContextMenuCommand
用于执行从上下文菜单中选择的命令。
OnContextMenuDismissed
当上下文菜单被关闭时调用,无论菜单是否为空或是否选择了命令。
OnPreKeyEvent
在键盘事件发送到渲染器之前调用。
OnKeyEvent
在渲染器和页面中的 JavaScript 处理事件后调用。
OnAddressChange
当框架的地址发生变化时调用。
OnTitleChange
当页面标题发生变化时调用。
OnFavIconUrlChange
当页面图标发生变化时调用。
OnFullScreenModeChange
当页面中的网页内容切换全屏模式时调用。
OnTooltip
当浏览器即将显示工具提示时调用。
OnStatusMessage
当浏览器接收到状态消息时调用。
OnConsoleMessage
用于显示控制台消息。
OnAutoResize
当通过 CefBrowserHost.SetAutoResizeEnabled
启用自动调整大小且内容已自动调整大小时调用。
OnLoadingProgressChange
当整体页面加载进度发生变化时调用。
OnCursorChange
当浏览器的光标发生变化时调用。
OnBeforeDownload
在下载开始之前调用。
OnDownloadUpdated
当下载的状态或进度信息更新时调用。
OnJsdialog
用于运行 JavaScript 对话框。
OnBeforeUnloadDialog
用于运行询问用户是否要离开页面的对话框。
OnResetDialogState
用于取消任何挂起的对话框并重置任何保存的对话框状态。
OnDialogClosed
当默认实现的对话框关闭时调用。
OnBeforePopup
在创建新的弹出浏览器之前在 UI 线程上调用。
OnAfterCreated
在创建新浏览器后调用。
OnBeforeClose
在浏览器销毁之前调用。
OnClose
当浏览器收到关闭请求时调用。
OnBeforeBrowse
在浏览器导航之前在 UI 线程上调用。
OnOpenUrlFromTab
在某些情况下,在 OnBeforeBrowse
之前在 UI 线程上调用。
OnGetAuthCredentials
当浏览器需要用户凭据时在 IO 线程上调用。
OnQuotaRequest
当 JavaScript 通过 webkitStorageInfo
请求特定存储配额大小时在 IO 线程上调用。
OnCertificateError
在 UI 线程上处理具有无效 SSL 证书的 URL 请求。
OnSelectClientCertificate
当请求客户端证书进行身份验证时在 UI 线程上调用。
OnPluginCrashed
当插件崩溃时在浏览器进程的 UI 线程上调用。
OnRenderViewReady
当与浏览器关联的渲染视图准备好接收/处理渲染进程中的 IPC 消息时在浏览器进程的 UI 线程上调用。
OnRenderProcessTerminated
当渲染进程意外终止时在浏览器进程的 UI 线程上调用。
OnGetResourceRequestHandler_ReqHdlr
在资源请求启动之前在浏览器进程的 IO 线程上调用。
OnDocumentAvailableInMainFrame
当主框架的 window.document
对象已创建时在浏览器进程的 UI 线程上调用。
OnBeforeResourceLoad
在资源请求加载之前在 IO 线程上调用。
OnGetResourceHandler
在资源加载之前在 IO 线程上调用。
OnResourceRedirect
当资源加载被重定向时在 IO 线程上调用。
OnResourceResponse
当接收到资源响应时在 IO 线程上调用。
OnGetResourceResponseFilter
在 IO 线程上可选地过滤资源响应内容。
OnResourceLoadComplete
当资源加载完成时在 IO 线程上调用。
OnProtocolExecution
在 IO 线程上处理具有未知协议组件的 URL 请求。
OnCanSendCookie
在资源请求发送之前在 IO 线程上调用。
OnCanSaveCookie
在接收到资源响应后在 IO 线程上调用。
OnFileDialog
OnGetAccessibilityHandler
返回用于辅助功能通知的处理程序。
OnGetRootScreenRect
用于检索根窗口的屏幕坐标矩形。
OnGetViewRect
用于检索相对于屏幕坐标的视图矩形。
OnGetScreenPoint
用于检索从视图坐标到实际屏幕坐标的转换。
OnGetScreenInfo
用于允许客户端填充 CefScreenInfo
对象。
OnPopupShow
当浏览器想要显示或隐藏弹出窗口时调用。
OnPopupSize
当浏览器想要移动或调整弹出窗口大小时调用。
OnPaint
当需要绘制元素时调用。
OnAcceleratedPaint
当元素已渲染到共享纹理句柄时调用。
OnStartDragging
当用户在网页视图中开始拖拽内容时调用。
OnUpdateDragCursor
当网页视图想要在拖拽操作期间更新鼠标光标时调用。
OnScrollOffsetChanged
当滚动偏移量发生变化时调用。
OnIMECompositionRangeChanged
当 IME 组合范围发生变化时调用。
OnTextSelectionChanged
当指定浏览器的文本选择发生变化时调用。
OnVirtualKeyboardRequested
当需要为指定浏览器显示或隐藏屏幕键盘时调用。
OnDragEnter
当外部拖拽事件进入浏览器窗口时调用。
OnDraggableRegionsChanged
当浏览器窗口的可拖拽区域发生变化时调用。
OnFindResult
TChromiumCore.Find
返回的查找结果。OnRequestContextInitialized
在请求上下文初始化后立即在浏览器进程的 UI 线程上调用。
OnBeforePluginLoad
在加载插件实例之前在多个浏览器进程线程上调用。
OnGetResourceRequestHandler_ReqCtxHdlr
在资源请求启动之前在浏览器进程的 IO 线程上调用。
OnSinks
当可用媒体接收器列表发生变化或调用 TChromiumCore.NotifyCurrentSinks
时调用。
OnRoutes
当可用媒体路由列表发生变化或调用 TChromiumCore.NotifyCurrentRoutes
时调用。
OnRouteStateChanged
当路由的连接状态发生变化时调用。
OnRouteMessageReceived
当通过路由接收到消息时调用。
OnGetAudioParameters
在 UI 线程上调用以允许配置音频流参数。
OnAudioStreamStarted
当浏览器开始流式传输音频时在浏览器音频捕获线程上调用。
OnAudioStreamPacket
当接收到音频流的 PCM 数据包时在音频流线程上调用。
OnAudioStreamStopped
当音频流停止时在 UI 线程上调用。
OnAudioStreamError
当发生错误时在 UI 或音频流线程上调用。
OnDevToolsMessage
当接收到 DevTools 协议消息时调用,参数中包含解析后的 JSON 文本。
OnDevToolsRawMessage
当接收到 DevTools 协议消息时调用,参数中包含未解析的文本。
OnDevToolsMethodResult
在尝试执行 DevTools 协议函数后调用,参数中包含解析后的 JSON 文本。
OnDevToolsMethodRawResult
在尝试执行 DevTools 协议函数后调用,参数中包含未解析的文本。
OnDevToolsEvent
当接收到 DevTools 协议事件时调用,参数中包含解析后的 JSON 文本。
OnDevToolsRawEvent
当接收到 DevTools 协议事件时调用,参数中包含未解析的文本。
OnDevToolsAgentAttached
当 DevTools 代理已附加时调用。
OnDevToolsAgentDetached
当 DevTools 代理已分离时调用。
OnExtensionLoadFailed
当 TChromiumCore.LoadExtension
请求失败时调用。
OnExtensionLoaded
当 TChromiumCore.LoadExtension
请求成功时调用。
OnExtensionUnloaded
当 CefExtension.Unload
请求完成后调用。
OnExtensionBeforeBackgroundBrowser
当扩展需要一个浏览器来托管通过 background
清单键指定的后台脚本时调用。
OnExtensionBeforeBrowser
当扩展 API(例如 chrome.tabs.create
)请求创建新浏览器时调用。
OnExtensionGetActiveBrowser
当未指定 tabId
时调用。
OnExtensionCanAccessBrowser
当指定了与 target_browser
关联的 tabId
时调用。
OnExtensionGetExtensionResource
用于检索通常从磁盘加载的扩展资源。
OnPrintStart
当指定浏览器的打印开始时调用。
OnPrintSettings
同步客户端状态与设置。
OnPrintDialog
显示打印对话框。
OnPrintJob
将打印作业发送到打印机。
OnPrintReset
重置与打印相关的客户端状态。
OnGetPDFPaperSize
返回 PDF 纸张大小(以设备单位为单位)。
在控制台应用程序中加载的DLL中创建的OSR模式浏览器。
创建一个OSR浏览器线程并截取屏幕截图的控制台应用程序。
使用TCefCookieManagerRef
读取所有Cookie的浏览器。
一个简单的浏览器,显示自定义资源和网页,而不是互联网网站。
从DLL创建的网页浏览器。
使用CEF类的基本DOM访问器。包括节点搜索和DOM遍历。
使用TChromium
和TCEFWindowParent
的HTML编辑器。
使用TChromium
和TCEFWindowParent
组件并采用外部消息泵的浏览器。
使用TChromium
和TCEFWindowParent
的简单全屏浏览器。按ESC键退出。
V8Context
评估JavaScript代码。OSR模式下的全屏Kiosk浏览器,带有虚拟键盘,当用户点击可编辑的HTML元素时自动显示。上下文菜单还有一个显示/隐藏键盘的选项。按ESC键退出此演示。
MDIBrowser
在一个MDI应用程序中使用多个TChromium
组件。
在一个MDI应用程序中使用多个TChromium
组件,并采用外部消息泵配置。
演示如何使用媒体设备发现和消息传递。
使用TChromium
和TCEFWindowParent
的网页浏览器。具有自定义上下文菜单、基本网页浏览器界面、开发者工具、缩放、打印、代理设置以及一些额外功能,如复制HTML和JavaScript打印。
使用TCEFServerComponent
和TCEFUrlRequestClientComponent
进行OAuth 2.0用户认证和REST API请求。
使用外部消息泵的OSR模式浏览器。
此演示展示如何在OSR模式下使用自定义表单处理弹出窗口。
此演示展示如何在正常模式下使用自定义表单处理弹出窗口。
带有POST数据检查器的网页浏览器。
使用自定义响应过滤器的TChromium
和TCEFWindowParent
组件构建的浏览器。
URL方案注册,显示自定义网页。
使用CEF4Delphi创建的最简单的网页浏览器。使用TChromiumWindow
组件。
使用CEF4Delphi创建的最简单的网页浏览器。使用TChromium
和TCEFWindowParent
两个组件的组合。
使用TChromiumWindow
组件并采用外部消息泵配置的浏览器。
使用TChromium
在OSR模式下创建的网页浏览器,适用于需要离屏渲染的场景。
使用TCEFServerComponent
组件构建的HTTP和WebSocket服务器,用于本地主机应用程序之间的通信。
为CEF子进程使用不同可执行文件的网页浏览器。
在选项卡中使用多个TChromium
和TCEFWindowParent
组件。
在选项卡中使用TFrame
内的多个TChromium
和TCEFWindowParent
组件。
使用Views Framework创建的微型网页浏览器,无需VCL或FMX。
极其简单的浏览器,类似于CEF项目中的cefsimple
演示。
在一个应用程序中使用多个TChromium
组件的工具箱表单。
使用Views Framework创建的子表单中的简单浏览器。
类似于ToolBoxBrowser的演示,但为CEF子进程使用不同的可执行文件。
演示如何使用TCEFUrlRequestClientComponent
组件进行URL请求。
创建一个OSR浏览器线程并截取屏幕截图的桌面应用程序。