Tôi đã gặp sự cố tương tự như trên (chỉ trong Safari). Thẻ body của tôi có hình nền, lặp lại-x và được sử dụng làm nền cho toàn bộ trang web. Khi người dùng truy cập trang trong Safari, có đèn flash màu đen khi tải trang. Tôi đã tìm kiếm các lứa tuổi cho một giải pháp cho điều này, nhưng nó dường như là một lỗi chưa được giải quyết với Safari.
Tôi đã thử thêm "style: background-color: #FFF" vào thẻ html và body và cũng đã thử sử dụng trường cũ "bgcolor: #FFF" - không có tác phẩm nào.
Cách duy nhất tôi có thể khiến Safari hoạt động là sử dụng CSS + jQuery. Cung cấp cho cơ thể một lớp "bg-on" trong các tệp html và CSS của bạn. Trong tệp .js được liên kết hoặc trong trang html của bạn bằng thẻ:
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
Điều gì ở trên là khi DOM được trình duyệt tải, nó sẽ loại bỏ lớp khỏi cơ thể, do đó Safari sẽ không hiển thị nền đen không có hình nền. Sau đó, khi sự kiện window.load kích hoạt, khi tất cả nội dung đã được tải, nội dung sẽ được cung cấp hình nền ...
Nó sẽ không ảnh hưởng đến các trình duyệt bị tắt JS, vì lớp "bg-on" là hardcoded vào html.
Không phải là giải pháp đặc biệt thanh lịch, nhưng nó phù hợp với tôi.
Nguồn
2012-04-09 20:17:08
Tôi đã thử "xen kẽ" và không giải quyết được sự cố, ít nhất là trong Safari 6.0.2. – Ben