выбор jquery @import url () - PullRequest
       10

выбор jquery @import url ()

2 голосов
/ 31 мая 2011

https://github.com/NV/auto_update_stylesheets

Я пытаюсь обновить этот замечательный скрипт для работы с жестоким импортом CSS, например:

<style type="text/css" media="all">@import url("http://192.168.1.238/system.base.css");
</style>

Скрипт работает только для нормальных включений CSS, таких как:

<link href="stylesheets/bundle_github.css" media="screen" rel="stylesheet" type="text/css" />

Я понимаю логику этого сценария, но моя проблема в том, как выбрать @import url ('foo'), часть внутри url(), в этом примере foo. Если я знаю, возможно ли это, я смогу решить свои проблемы.

Спасибо.

1 Ответ

1 голос
/ 01 июня 2011

Там действительно нет хорошего кросс-браузерного способа сделать это. См. QuirksMode для получения подробной информации о том, как браузеры реализуют правила CSS.

Вам нужно будет найти правильный способ получения правила @import, чтобы разобрать его.

Для IE вам нужно получить document.styleSheets[0].imports[0], предполагая, что первая ссылка style или link rel="stylesheet" на вашей странице содержит правило @import в качестве первого правила. Похоже, вам нужно позвонить document.styleSheets[0].removeImport(0); и document.styleSheets[0].addImport("URL");, чтобы изменить.

Казалось бы, другие браузеры используют document.styleSheets[0].cssRules[0], предполагая такую ​​же структуру. Для них вам нужно использовать document.styleSheets[0].deleteRule(0) и document.styleSheets[0].insertRule('@import url("URL")'). Это стандартные правила DOM Level 2; см. здесь .

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...