我使用TChromium
。我分配AWebPageAsString
,这是一个静态的HTML页面与灰色的背景色。
FBrowser := TChromium.Create(pnlHolder);
FBrowser.Visible := false;
FBrowser.Parent := TWinControl(pnlHolder);
FBrowser.Align := alClient;
FBrowser.OnBeforeBrowse := BrowserBeforeBrowse;
FBrowser.HandleNeeded;
FBrowser.FontOptions.RemoteFontsDisabled := true;
FBrowser.Browser.MainFrame.LoadString(AWebPageAsString, 'navigate:webpage');
当我启动应用程序时,它首先以白色背景和空内容显示,然后我的页面以灰色背景和实际内容显示。
有办法避免这种情况吗?有没有默认的背景色?
我知道这是一个很晚的回答,但至少这是一个有趣的话题。要更改默认浏览器的背景色,可以使用自定义样式表。这听起来不错,但它有一个很大的缺点——当你导航到一个没有定义样式表的页面时,你的自定义样式表将被应用。但是,如果你知道你只会浏览特定样式的页面,那么它可能会更有优势,因为这样你就可以将样式定义保留在默认的自定义样式中。
因此,要创建一个黑色背景的浏览器(使用下面描述的样式),您可以使用以下代码:procedure TForm1.FormCreate(Sender: TObject);
const
CSSHeader = 'data:text/css;charset=utf-8;base64,';
CSSBase64 = 'Ym9keSB7YmFja2dyb3VuZC1jb2xvcjpibGFjazt9';
begin
Chromium1.UserStyleSheetLocation := CSSHeader + CSSBase64;
Chromium1.Options.UserStyleSheetEnabled := True;
Chromium1.ReCreateBrowser('about:blank');
end;
上面代码中使用的CSSBase64
常量是以下样式表encoded to Base64
:
body {background-color:black;}