Почему свойство background-image вызывает предупреждение в Chrome? - PullRequest
9 голосов
/ 05 октября 2011

Я использую метод jQuery .css(), чтобы установить фоновое изображение div. HTML в своем конечном состоянии, таким образом:

<div id="front-page-bg" style="background-image: url(http://peterfcarlson.com/wp-content/uploads/2011/09/ert-011.jpg); display: block; "></div>

Работает нормально , однако я получаю сообщение об ошибке / предупреждение в Chrome, где свойство background-image вычеркивается так, как будто оно игнорируется из-за неверного ввода, даже если оно явно применяется С чего бы это? Это проблема с Chrome или с моей стороны?

An error in the Chrome Developer Tools window

Я протестировал страницу в FF и IE, где она также работает без каких-либо ошибок или подобных предупреждений. Любые идеи о том, почему это может происходить, и, возможно, что еще более важно, я должен игнорировать это, так как страница, кажется, работает?

Ответы [ 4 ]

7 голосов
/ 15 октября 2011

EDIT:

При более глубоком рассмотрении (игнорируя первую вводящую в заблуждение проблему 404 с изображением), кажется, что инструменты разработчика игнорируют определение стиля; на самом деле это применяет not-parsed-ok класс, который добавляет значок предупреждения, и overloaded класс, который вызывает сквозную передачу. Перегруженный класс не добавляется, если вместо определения background-image css используется background.

Но чтобы выяснить причины такого поведения, необходимо проанализировать исходный код средств разработчика.

Я предполагаю, что это ошибка / неполная функция инструментов разработчика.

Это мой собственный тест:

enter image description here

Как видите, используемое изображение является локальным и имеет apix. И это в результате проверки:

enter image description here

Тестирование с несуществующим свойством css, оно показывает идентичное поведение:

enter image description here


Ваше ссылочное изображение имеет некоторые странные проблемы с веб-сервером: на самом деле он возвращает ошибку 404 (может быть, тайм-аут?), а затем перенаправление.

Таким образом, вы должны проверить изображение и путь к веб-серверу, а не фактический HTML-код.

Chrome screenshot

Даже при попытке вставить фактический HTML-код, ошибка та же:

enter image description here

Это фактический ответ вашего веб-сервера вместо вашего изображения:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
html,body{height:100%;width:100%;margin:0;padding:0;}
body{overflow:hidden;background:#EDEDED url(http://peterfcarlson.com/wp-content/themes/comingsoon/pfc.png) center center no-repeat}
</style>
</head>
<body>
</body>
</html>
2 голосов
/ 20 октября 2011

Проблема в ошибке DevTools / WebInspector. Код пользовательского интерфейса DevTools просто показывает данные, которые не всегда корректно генерируются серверной частью DevTools.

Ошибка WebKit: https://bugs.webkit.org/show_bug.cgi?id=70325

Ошибка хрома: http://code.google.com/p/chromium/issues/detail?id=100646

1 голос
/ 15 октября 2011
http://peterfcarlson.com/wp-content/uploads/2011/09/ert-011.jpg

Ваше изображение не появляется, вместо этого мы получаем ошибку 404. Я заметил, что вы используете сайт WordPress из структуры URL вашего изображения, и мы могли бы посмотреть не на ваше изображение, а на изображение, включенное в вашу страницу 404.php внутри вашей темы.

Возвращается HTML-код:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
html,body{height:100%;width:100%;margin:0;padding:0;}
body{overflow:hidden;background:#EDEDED url(http://peterfcarlson.com/wp-content/themes/comingsoon/pfc.png) center center no-repeat}
</style>
</head>
<body>
</body>
</html>

И это загружаемое изображение: http://peterfcarlson.com/wp-content/themes/comingsoon/pfc.png

Я совершенно уверен, что если вы посмотрите страницу 404.php в своей теме, это то, что вы найдете. Поэтому вы можете повторно загрузить изображение и использовать новый URL.


Комментарий

Я знаю, что на вопрос был дан ответ, но хотел бы поделиться с моими результатами относительно того, что я нашел. Я заметил, что по какой-то причине, когда вы указываете элемент background-image, он иногда выдает предупреждение в браузере webkit, что является проблемой, с которой столкнулся OP. Но я заметил, что предупреждение исчезает, когда вместо него используется сокращение background.

Вот так:

background:#ffffff url('image.png') repeat scroll right top;

Я изменил демо @ sandeep, чтобы показать, как он работает:

Вот полная скрипка: http://jsfiddle.net/RDmRz/7/

и демонстрационная страница: http://jsfiddle.net/RDmRz/7/show/

Проверьте страницу с помощью инструментов разработчика и переключайтесь между div, чтобы показать, как она работает для «работающих» изображений и не работает для остальных.

Пара скриншотов:

Работает

Works

Не работает

Doesn't Work

1 голос
/ 15 октября 2011

@ IsaacLubow; Оба Chrome & Safari средства разработчика показывают, что warning ошибка. Тогда вопрос

Почему они показывают предупреждение?

Ответ : - Оба Chrome & Safari developer tool показывают предупреждение, когда свойство не understand & recognized ими.

например: - напишите -moz-border-radius в css. Затем проверьте страницу в Chrome или Safari. Он показывает ту же ошибку, что и у вас.

Тогда второй поднятый вопрос

Но свойство background-image распознается всеми браузерами!

Ответ: - Да; Свойство background-image распознается всеми браузерами, и изображение по-прежнему отображается на веб-сайте, но способ определения изображения является причиной warning / error. В вашем примере, если вы определите свойство background-image внутри html tag вместо css. Это показывает warning / error.

Посмотрите на этот пример, первые изображения Div показывают warning, но второй div не показывает никаких предупреждений:

http://jsfiddle.net/sandeep/RDmRz/3/show

Итак, почему это случилось?

Поскольку присвоение атрибутов в теге html является Deprecated, метод означает

Эти устаревшие функции все еще могут использоваться, но должны использоваться с осторожность, потому что они, как ожидается, будут удалены полностью когда-нибудь в будущее. Вам следует поработать над тем, чтобы исключить их использование из вашего кода.

Проверьте, что mozilla сказал об этом https://developer.mozilla.org/en/JavaScript/Reference/Deprecated_Features

https://developer.mozilla.org/en/DOM/HTMLImageElement

Итак, Developer tool обновляются в соответствии с новым html standards и после введения HTML4 некоторые свойства устарели и устарели.

Проверьте это больше http://fantasai.tripod.com/qref/HTML4/deprecated.html

http://www.createafreewebsite.net/html_tutorial/body_tag.html.

Хорошо бы написать background-image в css вместо html tag.

...