Предотвратить белый экран перед загрузкой страницы в хром?

38

Когда страница загружается не сразу, Chromium и все остальные браузеры, которые я пробовал, отображают белый экран, прежде чем они получают от него ответ:

введите описание изображения здесь

Несмотря на то, chrome://settings/personalчто он говорит, что использует тему GTK + - в моем случае это Darklooks, который имеет темный фон:

введите описание изображения здесь

Есть ли способ избежать этого в Chromium? Или, если нет, есть ли браузер, у которого нет этой «проблемы»?

Alex
источник
7
Ваша страница выглядит очень размытой тоже!
Грег
Для Firefox вы можете изменить значение browser.display.background_colorна более темный цвет (# 333). Также попробуйте добавить browser { background-color: #333 !important; }и tabbrowser tabpanels { background-color: #333 !important}в userChrome.css.
Матин Улхак
этот взлом решил белую вспышку для меня. stackoverflow.com/questions/16243105/...
Я просто установил темную тему инкогнито chrome.google.com/webstore/detail/material-incognito-dark-t/… Это решило проблему для меня: больше нет белой страницы при загрузке страницы!
wp78de

Ответы:

14

Для Google Chrome и Chromium вы, вероятно, стали жертвой проблемы 1373: навигация по темным веб-сайтам приводит к ослепительным белым вспышкам между страницами .

Есть хитрость, чтобы минимизировать, но не полностью устранить ваше страдание, описанное в комментарии 261 :

В качестве временного исправления я настроил пользовательскую таблицу стилей для отображения страниц с черным фоном, чтобы перед получением информации о стилях с веб-сайта он отображал окно черным, а не белым, а теперь вместо этого мигает черным, что намного удобнее для переноски. глаза, пока не будет принято постоянное решение.

Взлом включает добавление следующих строк в вашу папку, Custom.cssкоторая находится User Stylesheetsв вашей Defaultпапке. В моем случае путь есть ~/.config/chromium/Default/User Stylesheets.

html, body{
background-color:#000000; //This sets the background color to black
color:#0000FF; //This sets the text to blue, so you can read it on webpages set to use defaults; white is too hard on my eyes and if you dont put this it will be black on black
}

Что касается Firefox, я использую следующий код, userChrome.cssрасположенный в ~/.mozilla/firefox/profile_name/chrome:

@namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

/*prevent white flash*/
tabbrowser tabpanels { background-color: #111 !important}

Если chromeпапка не существует, создайте ее. Обратите внимание, что оба chromeи userChrome.cssчувствительны к регистру.


источник
2
Решение Chromium не работало для меня в 2015 году, но решение Firefox в основном работает. Не удается полностью избежать мерцания из-за постепенной загрузки страниц браузерами.
Холокронотка
4
еще один взлом, разветвив исходный код здесь github.com/hbtlabs/chromium-white-flash-fix
hbt
1
у меня не работает метод firefox (ubuntu 18.04+ ffox 65.0.1)
wotter
3

Насколько я знаю, все старые методы, которые исправили эту ошибку, больше не работают (в 2016 году). Сегодня я пришел к решению, чтобы преодолеть эту проблему, и написал о нем кое-что, доступное здесь: http://jollo.org/LNT/public/chrome-white-flash.html .

По сути, он использует скрипт autohotkey, который рисует окно на себя до тех пор, пока не загрузится следующая страница, минуя период, в течение которого окно мигает.

фанфара
источник
2

Хороший обходной путь vasa1, белые вспышки исчезли. Но фон некоторых веб-сайтов становится черным, что немного уродливо:

введите описание изображения здесь

Поэтому я адаптировал этот CSS и получил:

html:not(:hover), body:not(:hover){
    background-color:#000000;
}

Это означает, что когда курсор находится не над страницей, фон устанавливается черным - при нажатии на кнопку новой вкладки курсор находится не над страницей, поэтому вместо белого будет мигать черный фон. Когда вы наводите курсор на страницу (когда вы читаете ее), черный фон затем забывается, а вместо него используется веб-сайт:

введите описание изображения здесь введите описание изображения здесь

Alex
источник
Большой! Посмотрите, можете ли вы добавить его в список комментариев (выпуск 1373). Я подозреваю, что вы не можете, потому что они, кажется, имеют ограниченные комментарии: комментировать могут только пользователи с разрешением EditIssue. :(
И когда я тестировал Midori (также WebKit) год назад, он не вспыхнул белым! Я не знаю, как это сейчас. Я оставил Midori, потому что он не был настолько настраиваемым и падал (для меня) или некоторые важные страницы.
1
этот подход больше не работает с 2016 года
ecoe
1

ОБНОВЛЕНИЕ: я изменил свой ответ, чтобы использовать временное затемнение экрана, так как мое предыдущее решение было ошибочным и оставило состояние прокрутки браузера нарушенным.

В этом решении используется сценарий automator, настроенный в качестве службы, доступной для Chrome и, наконец, сопоставленный с сочетанием клавиш в системе. Простым решением было просто уменьшить яркость экрана примерно в 5 раз, но вы можете поиграть с этой посылкой в ​​зависимости от вашей яркости. Например, если вы используете очень темную настройку, экран может на секунду пропасть, но это все же лучше, чем яркая вспышка белого цвета.

См. Https://gist.github.com/lacostenycoder/01108de10fe02e2f39d9cceb2457b895.

on run {input, parameters}

    set the_application to (path to frontmost application as Unicode text)

  repeat 5 times
    tell application "System Events"
          key code 107
      end tell
  end repeat
  delay 1

    tell application "System Events"

    keystroke "t" using command down
    delay 1

    end tell
  delay 1 
  repeat 5 times
    tell application "System Events"
          key code 113
      end tell
  end repeat

    return input
end run
lacostenycoder
источник
0

Хороший, это работает на истории. Лучше всего взять оригинальный код и изменить текст на светлый. Второй код не работает, вот один:

На этой странице объясняется, как изменить цвет вспышки с помощью JS

Chrome мигает черным экраном при использовании css transition rotate

com.prehensible
источник
2
Я переустановил Chrome, и теперь это исправление больше не работает, у меня все еще есть файл «user stylesheets / custom.css», который работал до установки, но он мигает белым и страница истории снова становится белой. кто-нибудь знает почему?
com.prehensible