Ho avuto lo stesso problema di cui sopra (solo in Safari). Il mio tag body ha un'immagine di sfondo, è repeat-x e viene usato come sfondo per l'intero sito web. Quando un utente accede alla pagina in Safari, c'è un lampo di nero sul caricamento della pagina. Ho cercato per anni una soluzione a questo, ma sembra essere un bug irrisolto con Safari.
Ho provato ad aggiungere "style: background-color: #FFF" ai tag html e body e ho anche provato a usare la vecchia scuola "bgcolor: #FFF" - nessuno funziona.
L'unico modo per far funzionare Safari era usare CSS + jQuery. Dai al corpo una classe di "bg-on" nei tuoi file html e CSS. In un file .js collegato o nella della pagina HTML nei tag:
jQuery(function ($) {
$(document).ready(function(){
$('body').removeClass('bg-on');
});//end document ready
/* NOTE (window).load fires when images have been fully loaded */
$(window).load(function() {
$('body').addClass('bg-on');
});//end window load function
});//end jQuery function no conflict mode
Quello che il precedente non è quando il DOM è caricato dal browser, che rimuove la classe dal corpo, quindi, Safari non lo farà mostra uno sfondo nero poiché non c'è immagine di sfondo. Quindi quando scatta l'evento window.load, quando tutte le risorse sono state caricate, al corpo viene assegnata l'immagine di sfondo ...
Non ha alcun effetto sui browser disabilitati JS, poiché la classe di "bg-on" è hardcoded nell'html.
Non è una soluzione particolarmente elegante, ma funziona per me.
fonte
2012-04-09 20:17:08
Ho provato "interlacciato" e non risolve il problema, almeno in Safari 6.0.2. – Ben