3

私は使用しますTChromiumAWebPageAsString背景色が灰色の静的な 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');

アプリケーションを起動すると、最初に白い背景と空のコンテンツが表示され、次にページが灰色の背景と実際のコンテンツで表示されます。

これを回避する方法はありますか?多分デフォルトの背景色がありますか?

4

1 に答える 1

2

かなり遅い答えですが、少なくとも興味深いトピックです。デフォルトのブラウザの背景色を変更するには、カスタム スタイルシートを使用できます。良さそうに聞こえますが、大きな弱点が 1 つあります。たとえば、スタイルシートが定義されていないページに移動すると、カスタムのスタイルシートが適用されます。しかし、たとえば特定のスタイルのページだけを閲覧することがわかっている場合は、そのデフォルトのカスタム スタイルで定義されたスタイル定義をそのままにしておくことができるので、さらに有利になる可能性があります。

したがって、黒の背景を持つブラウザーを作成するには (以下で説明するスタイルを使用)、次のコードを使用できます。

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のコードで使用されている定数は、次の stylesheetencoded to Base64です。

body {background-color:black;}
于 2012-08-22T09:31:49.660 に答える