@creatoroftheworld

Как с помощью jQuery добавить в head тэг?

$('head').append('<style> a { background: red} </style>' );

В общем, чтоб как-то так, но чтоб работало
  • Вопрос задан
  • 2362 просмотра
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 2
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Вот оно, поколение jQuery...
Есть коллекция всех стилей Document.styleSheets, которая предоставляет доступ к каждому элементу link или style. А уже у них есть средства добавления и удаления правил CSS на лету.

Итого так (сэкономить на синтаксисе jQuery можно в одном месте, да и то копейку):
document.head.appendChild(document.createElement('style'));
var sheets = document.styleSheets,
	sheet = sheets[sheets.length - 1];

sheet.insertRule('html{background:#369;}', sheet.cssRules.length);

/*А теперь можно проводить любые манипуляции*/
sheet.insertRule('p{font-size:2em;color:#fff;}', sheet.cssRules.length);
sheet.deleteRule(0);
sheet.insertRule('html{background:#69c;}', 0);

/*Или перебрать все правила в любом источнике, который соответствует политике происхождения*/
for (var i = 0; i < sheet.cssRules.length; i++) {
	console.log(sheet.cssRules[i].selectorText);
}
Ответ написан
HaJIuBauKa
@HaJIuBauKa
Таки да подтверждаю, работает.
https://jsfiddle.net/HaJIuBauKa/wg0u6s6d/

ЗЫ: Создатель! Уповаю! Сделайте что б всем (пользователям) было хорошо (зеленая кнопка)...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы