Сообщение о безопасности для Internet Explorer из-за фонового стиля url

#javascript #html #internet-explorer

#javascript #HTML #internet-explorer

Вопрос:

Я нахожусь на сайте https и получаю всплывающее сообщение о безопасности: «У вас смешанный контент, незащищенные элементы на защищенной странице». Похоже, что удаление встроенного стиля: background-image:url('../images/img.png') устраняет проблему. Кто-нибудь знает почему?

 <div style="background-image:url('../images/img.png')" />
  

В Internet Explorer мне интересно, использует ли ‘background-image: url’ другой механизм загрузки.

Это IE7-8.

Вот связанная ошибка от Microsoft, но я все еще не могу найти более подробной информации о том, что не так с IE. Ссылка:http://support.microsoft.com/kb/925014

Комментарии:

1. Странно. Можете ли вы показать код CSS (или разметку элемента), о котором идет речь?

2. Отсутствует CSS. Это атрибут стиля. Я думаю, что это ошибка IE.

3. Есть ли шанс увидеть живой пример?

Ответ №1:

Мне кажется, что, хотя вы используете HTTPS для просмотра страницы, IE пытается загрузить изображение, на которое ссылается CSS, через HTTP-соединение, независимо от того, что на самом деле использует страница (отсюда смешивание безопасного и небезопасного содержимого).

Попробуйте изменить ссылку в CSS на абсолютную ссылку, используя HTTPS:

 background-image:url('https://site.com/images/img.png');
  

Комментарии:

1. Это правильный ответ; проблема была исправлена в IE9. Смотрите комментарии здесь: blogs.msdn.com/b/ieinternals/archive/2009/06/22 /… для обсуждения.

2. Мне понравился комментарий, выбрав это в качестве ответа.

Ответ №2:

Это потому, что фоновое изображение поступает из HTTP-запроса, а не HTTPS, поэтому оно называется смешанным содержимым.

Чтобы быстро решить эту проблему, просто переместите фоновое изображение внутри веб-сервера расположения HTTPS

 background-image:url('https://yourdomain../images/img.png')
  

Комментарии:

1. Нет, это ошибка IE. Изображение запрашивается как https.

Ответ №3:

У меня была такая же проблема совсем недавно. Я решил это, переключив свой синтаксис с этого:

 body{
  background:#600 url('webpage_back.png') fixed no-repeat top center;
}
  

к этому:

 body{
  background:#600 url('webpage_back.png') no-repeat fixed center top;
}
  

Надеюсь, это поможет!

Комментарии:

1. Да, я публикую ошибку IE.