我正在使用TChromium导航到页面。它具有属性 选项.图像加载 ,您可以在其中指定是否要显示网站的图像。
问题是它仅适用于在设计时设置的选项。如果我在运行时更改此属性,它不起作用。这是一个示例代码;在这个例子中,我想实现的是打开 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;
因为@delphirules实际上询问的是延迟图像加载,而下一个答案是最好的(并且适用于任何基于铬的解决方案(,所以我在这里重新发布这个答案的一部分:
您可以在首选项设置为 false 的情况下加载网页
webkit.webprefs.loads_images_automatically
然后将其更改为 true,图像将加载(加载图像后无法卸载图像(。
感谢用户amaitland的伟大发现。 :)
试试这个:
-
创建两个 TChromium 实例,一个包含
options.ImageLoading := STATE_ENABLED
,另一个包含options.ImageLoading := STATE_DISABLED
-
然后,当您希望加载页面时,使第一个页面可见,另一个页面不可见,反之亦然。
显然,可能还有更多的事情要做,但至少可以避免每次要更改时都必须重新创建浏览器。