【发布时间】:2016-05-17 00:58:35
【问题描述】:
我正在使用 TChromium 导航到页面。它具有属性 Options.ImageLoading ,您可以在其中指定是否要显示网站的图像。
问题是它仅适用于在设计时设置的选项。如果我在运行时更改此属性,则无效。这是一个示例代码;我想在这个例子中实现的是打开 test1.com 显示图像和打开 test2.com 隐藏图像。不幸的是,这两个网站都加载了图片,忽略了我设置的选项。
任何想法如何解决这个问题?我希望能够仅显示某些网站的图片。
procedure tform1.button1click(Sender : TObject);
begin
chromium1.options.ImageLoading = STATE_ENABLED;
chromium1.load('www.test1.com');
end;
procedure tform1.button2click(Sender: TObject);
begin
chromium1.options.ImageLoading = STATE_DISABLED;
chromium1.load('www.test2.com');
end;
【问题讨论】:
-
CEF 的浏览器设置不能动态更改。重新创建浏览器/控件应该会有所帮助。
-
@fddima 这是个坏消息 :( 当我使用 TWebbrowser 时,我可以动态地做到这一点......
-
我不知道什么是 TWebBrowser。因为您无论如何都要重新加载页面 - 重新创建浏览器是最简单的方法,没有任何缺点。只需动态创建控件,您甚至可以通过正确的等待和显示/隐藏窗口来避免闪烁。所以实际上并不是一个坏消息。
-
@fddima 这是因为在我的旧工作流程中,我可以加载没有图像的页面,在其上运行一些脚本并仅在特定点之后激活图像;这将节省大量下载。在这个新的场景中,我需要从一开始就显示图像。无论如何,谢谢你的信息。
-
与您的帖子完全不同。负载/不负载之间的平衡取决于您。如果有意义,您始终可以使用图像重新创建和重新启动您的事务。您实际上是在询问延迟媒体加载,实际上是什么,afaik,可能但有点棘手/不能保证,但更好的是拥有对 CEF api 的原始访问权限(至少您需要能够提供自己的 CefRequestHandler,我当然也在谈论最新版本,不确定delphi绑定)。
标签: delphi chromium chromium-embedded tchromium