Zablokować biały ekran przed załadowaniem strony w chromie?

38

Gdy strona nie ładuje się natychmiast, Chromium i każda inna przeglądarka próbowałem wyświetlić biały ekran, zanim otrzymają odpowiedź:

wprowadź opis zdjęcia tutaj

Chociaż chrome://settings/personalmówi, że używa motywu GTK + - w moim przypadku jest to Darklooks, który ma ciemne tło:

wprowadź opis zdjęcia tutaj

Czy istnieje sposób, aby tego uniknąć w Chromium? A jeśli nie, czy istnieje przeglądarka, która nie ma tego „problemu”?

Alex
źródło
7
Twoja strona też wygląda naprawdę rozmazana!
Greg
W przeglądarce Firefox możesz zmienić wartość browser.display.background_colorna ciemniejszy kolor (# 333). Spróbuj także dodać browser { background-color: #333 !important; }i tabbrowser tabpanels { background-color: #333 !important}do userChrome.css.
Mateen Ulhaq
ten hack rozwiązał dla mnie biały błysk. stackoverflow.com/questions/16243105/…
Po prostu zainstalowałem ciemny motyw incognito chrome.google.com/webstore/detail/material-incognito-dark-t/… to dla mnie rozwiązało problem: brak ładowania białej strony na stronie!
wp78de

Odpowiedzi:

14

W przypadku Google Chrome i Chromium prawdopodobnie jesteś ofiarą problemu 1373: Poruszanie się po witrynach z ciemnym tłem powoduje oślepiające białe błyski między stronami .

Jest hack, aby zminimalizować, ale nie całkowicie wyeliminować, twoja nieszczęście opisane w komentarzu 261 :

Jako tymczasową poprawkę ustawiłem niestandardowy arkusz stylów użytkownika, aby renderował strony z czarnym tłem, tak aby przed otrzymaniem informacji o stylach ze strony internetowej renderowało okno na czarno zamiast na biało, a teraz miga na czarno, co jest znacznie bardziej znośne na oczy, aż powstanie trwałe rozwiązanie.

Włamanie polega na dodaniu następujących wierszy do twojego, Custom.cssktóry znajduje się User Stylesheetsw twoim Defaultfolderze. W moim przypadku ścieżka jest ~/.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
}

Jeśli chodzi o Firefoksa, używam następującego kodu userChrome.cssw ~/.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}

Jeśli chromefolder nie istnieje, utwórz go. Należy zauważyć, że zarówno chromei userChrome.csssą wrażliwe na wielkość liter.


źródło
2
Rozwiązanie Chromium nie działało dla mnie w 2015 roku, ale rozwiązanie Firefox w większości działa. Nie można całkowicie uniknąć migotania z powodu stopniowego ładowania stron przez przeglądarki.
holocronweaver
4
inny siekać przez rozwidlone tutaj kod źródłowy github.com/hbtlabs/chromium-white-flash-fix
HBT
1
metoda firefox nie działa dla mnie (ubuntu 18.04+ ffox 65.0.1)
wotter
3

O ile mi wiadomo, wszystkie stare metody, które naprawiły ten błąd, już nie działają (w 2016 r.). Wpadłem dziś na rozwiązanie tego problemu i napisałem o nim, który jest dostępny tutaj: http://jollo.org/LNT/public/chrome-white-flash.html .

Zasadniczo korzysta ze skryptu auto-klucza, który maluje okno do siebie, aż do załadowania następnej strony, pomijając okres, w którym okno miga.

fanfara
źródło
2

Ładne obejście vasa1, białe błyski zniknęły. Ale tło niektórych stron zmienia kolor na czarny, co jest nieco brzydkie:

wprowadź opis zdjęcia tutaj

Więc dostosowałem ten CSS i otrzymałem:

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

Oznacza to, że gdy kursor nie znajduje się nad stroną, tło jest ustawione na czarne - po kliknięciu przycisku nowej karty kursor nie znajduje się nad stroną, więc czarne tło będzie migać zamiast białego. Po najechaniu kursorem na stronę (podczas jej czytania) czarne tło zostaje zapomniane, a zamiast tego używane jest tło witryny:

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Alex
źródło
Świetny! Sprawdź, czy możesz dodać go do listy komentarzy tam (problem 1373). Podejrzewam, że nie, ponieważ wydają się mieć ograniczone komentarze: tylko użytkownicy z uprawnieniami EditIssue mogą komentować. :(
A kiedy rok temu testowałem Midori (także WebKit), nie błysnął na biało! Nie wiem jak jest teraz. Opuściłem Midori, ponieważ nie był tak dostosowywalny i ulegał awarii (dla mnie) ani niektórych ważnych stron.
1
takie podejście nie działa już od 2016 r.
ecoe
1

AKTUALIZACJA: Zmieniłem odpowiedź, aby użyć tymczasowego przyciemnienia ekranu, ponieważ moje poprzednie rozwiązanie było błędne i pozostawiłem stan przewijania przeglądarki uszkodzony.

W tym rozwiązaniu wykorzystano skrypt automatyzatora skonfigurowany jako usługa udostępniona Chrome i ostatecznie zmapowana na skrót klawiaturowy w systemie. Prostym rozwiązaniem było przyciemnienie ekranu około 5-krotnie działało dla mnie, ale możesz chcieć bawić się tym wysyłaniem w zależności od jasności. Jeśli użyjesz na przykład bardzo ciemnego ustawienia, ekran na sekundę całkowicie zgaśnie, ale i tak będzie lepszy niż oślepiający błysk bieli.

Zobacz 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
źródło
0

Fajny, działa na historii. Najlepiej jest wziąć oryginalny kod i zmienić tekst na jasny kolor. Drugi kod nie działał, oto jeden:

Ta strona wyjaśnia, jak zmienić kolor lampy błyskowej za pomocą JS

Chrome używa czarnego ekranu podczas korzystania z funkcji obracania css

zrozumiały
źródło
2
Ponownie zainstalowałem Chrome i teraz poprawka już nie działa, nadal mam plik „Arkusze stylów użytkownika / custom.css”, który działał przed instalacją, ale miga na biało, a strona historii znów jest biała. ktoś wie dlaczego?
com. Prehensible