Điều này liên quan đến SSL and mixed content due to CSS background images nhưng câu hỏi đó không có câu trả lời được chấp nhận và câu hỏi tôi yêu cầu cụ thể hơn một chút.Chính xác những quy tắc nào để tránh cảnh báo "nội dung hỗn hợp" trong IE do hình nền?
Trong một số trường hợp khi truy cập trang web HTTPS, IE sẽ ném cảnh báo "nội dung hỗn hợp" nếu phần tử được đưa ra một kiểu có hình nền. Tôi thấy one forum reference mà nói cảnh báo có thể tránh được nếu bạn đặt các tài liệu tham khảo trong một kiểu, ví dụ
#someElement a {
width:11px;
height:11px;
display:block;
overflow:hidden;
background:url(../images/sprites_list.png) no-repeat;
cursor:hand;
cursor:pointer;
background-position:0px -72px;
}
nhưng không nếu bạn cố gắng để tạo ra các inline yếu tố, a la
$('#someElement').append("<a title='something' style='background: url(../images/sprites_list.png) no-repeat; ... // etc
và thực sự , điều này làm việc cho tôi. Tôi đã thấy những người khác nói rằng bạn phải sử dụng URL https
tuyệt đối để tham chiếu đến hình ảnh chứ không phải là hình ảnh tương đối.
Câu chuyện có thật ở đây là gì? Có một số giải thích "chính thức" hay ít nhất là một tham chiếu đến những quy tắc đó là gì? Hoặc thất bại, có một bộ tiêu chuẩn hướng dẫn mà nếu theo sau làm cho nó rất khó để kích hoạt cảnh báo?
Bạn cũng có thể sử dụng giao thức tương đối: http://paulirish.com/2010/the-protocol-relative-url/ – js1568
Thú vị. Tôi sẽ xem xét điều đó. Nhưng tôi thực sự cần URL tương đối vì đây là tệp CSS tĩnh và không "biết" cơ sở URL tuyệt đối cho phần còn lại của nội dung tĩnh của tôi. – Dan
FYI, URL tương đối giao thức _won't_ làm việc xung quanh lỗi IE8 cụ thể này nếu bạn đang đặt hình nền thông qua JavaScript. Bạn _must_ sử dụng URL đầy đủ - bao gồm lược đồ và máy chủ - để tránh cảnh báo nội dung hỗn hợp của IE8 khi thực hiện các thao tác kiểu JS. ('element.style.backgroundImage =" //example.com/foo.png "' sẽ cảnh báo.) –
medmunds