Почему jQuery используется для получения атрибутов CSS?
Снимок экрана из Chrome Dev Tools:
![Screenshot from Chrome Dev Tools]()
Мне было интересно, как говорится в этом вопросе: почему мои атрибуты CSS извлекаются jQuery?
Лист CSS включен, как обычно. a <link rel="stylesheet">
в теге <head>
. jQuery и jQueryUI затем включаются как последняя вещь в теле.
Когда я перехожу к соответствующей строке (6128), она показывает мне функцию curCSS
.. Я ничего не могу найти об этом, только то, что она используется jQueryUI и что она была лишена.
jQuery v1.11.1
Google Chrome v39.0.2171.65 (64-bit)
EDIT1:
Эти активы не используются jQueryUI. Это лишь некоторые фоновые изображения и шрифты для моего контента.
EDIT2:
Я прокомментировал jQueryUI, перезагрузил страницу (Ctrl + F5), и теперь они все еще загружены, но теперь что-то в строке 3580.
**jQuery.js snippet removed for brevity**
Когда я комментирую jQuery, они загружаются как обычно.
EDIT3:
Чтобы выяснить, почему я загрузил только jQuery + UI и другие скрипты:
Я включил jQuery + UI в базовый шаблон, и я загрузил другую страницу, которая вообще не использовала jQuery. Я пошел отлаживать эту страницу и заметил, что jQuery делал странные вещи: P
Это наименьшая возможная разметка:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Pagetitle</title>
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
<link rel="stylesheet" href="css/jquery-ui.min.css"/>
<link rel="stylesheet" href="css/fonts.css"/>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<div style="font-family: ArialNarrowBold">CONTENT</div>
<script type="text/javascript" src="js/jquery/jquery.js"></script>
<script type="text/javascript" src="js/jquery/jquery-ui.js"></script>
</body>
</html>
Теперь утилиты Chrome выглядят следующим образом:
![Chrome devtools 2]()
Шрифт ArialNarrowBold
находится в fonts.css
. Как вы можете видеть, у меня больше нет скриптов на странице, кроме jQuery и jQuery-UI. Даже если я вытащил jquery-ui.min.css
, это сохранится.
Даже когда я загружаю шрифт в блок style
, jQuery все равно хочет загрузить его сам.
<style type="text/css">
@font-face {
font-family: 'ArialNarrowBold';
src: url('fonts/ArialNarrowBold.eot');
src: url('fonts/ArialNarrowBold.eot?#iefix') format('embedded-opentype'),
url('fonts/ArialNarrowBold.woff') format('woff'),
url('fonts/ArialNarrowBold.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
</style>
Ответы
Ответ 1
Это определенно регресс в Chrome Devtools. Я просто дважды проверял использование Chrome Canary и Chromium, и я не могу воспроизвести эту ситуацию ни в одном из браузеров. Вы должны обязательно сообщить об этой проблеме: https://support.google.com/chrome/answer/95315?hl=en
Прежде чем отправлять отчет об ошибке, проверьте, установлена ли последняя версия Chrome, если не видите, помогает ли это.
Ответ 2
Я получаю то же самое, когда я использую jquery для добавления атрибута src изображения.
Если вы заметите столбец, который пишет, что информация " Инициатор":
![Chrome console network]()
Кажется, что Chrome отслеживает в этом столбце script, который вызывает начало запроса.
Возможно, вы загружаете какой-то html с jquery, который содержит css внутри, или любой актив, который не связан с css.
Пример:
$(img).attr('src', 'image.png');
//OR
$(div).load('/load/index.html');
приведет к такой информации на консоли хром.
Ответ 3
Попробуйте открыть веб-сайт в Firefox и проверьте его там.
Если этот подсчет говорит: "jQuery", это будет конец света.
Но, если говорить "ничего", может возникнуть проблема с Chrome. Сообщите об этом!
Ответ 4
Вы используете jQuery на странице, верно? Иначе зачем вы его загружаете?
Пожалуйста, укажите как можно больше разметки, особенно любое использование jQuery (встроенные, теги script и т.д.)