Загружать внешний файл css, например скрипты в jquery, который совместим, т. Е. Также

Есть ли способ загрузить внешние файлы CSS, например, загрузить JS-файл с помощью метода .getScript, а также использовать функцию обратного вызова, например, в .getScript

$("", { rel: "stylesheet", type: "text/css", href: "/styles/yourcss.css" }).appendTo("head"); 

Это работает в FireFox и аналогично, но не в IE.

В jQuery 1.4:

 $("", { rel: "stylesheet", type: "text/css", href: "/styles/yourcss.css" }).appendTo("head"); 

http://api.jquery.com/jQuery/#jQuery2

 $("head").append(""); var css = $("head").children(":last"); css.attr({ rel: "stylesheet", type: "text/css", href: "address_of_your_css" }); 

Быстрая функция, основанная на ответах.

 loadCSS = function(href) { var cssLink = $(""); $("head").append(cssLink); //IE hack: append before setting href cssLink.attr({ rel: "stylesheet", type: "text/css", href: href }); }; 

Применение:

 loadCSS("/css/file.css"); 

Я думаю, что OP хотел сделать, это загрузить таблицу стилей асинхронно и добавить ее. Это работает для меня в Chrome 22, FF 16 и IE 8 для наборов правил CSS, хранящихся в виде текста:

 $.ajax({ url: href, dataType: 'text', success: function(data) { $('').appendTo("head"); } }); 

В моем случае я также иногда хочу, чтобы загруженный CSS заменил ранее загруженный CSS-код. Чтобы сделать это, я добавил комментарий в начале, скажем: «/ * Flag this ID = 102 * /», а затем я могу это сделать:

 // Remove old style $("head").children().each(function(index, ele) { if (ele.innerHTML && ele.innerHTML.substring(0, 30).match(/\/\* Flag this ID=102 \*\//)) { $(ele).remove(); return false; // Stop iterating since we removed something } }); 

  //load css first, then print  to header, and execute callback //just set var href above this.. $.ajax({ url: href, dataType: 'css', success: function(){ $('').appendTo("head"); //your callback } }); 

Для JQuery 1.2.6 и выше (исключая функции причудливых атрибутов выше).

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

Основываясь на вашем комментарии в ответ @ Raul, я могу представить два способа включить обратный вызов:

  1. Попросите getScript вызвать файл, загружающий css.
  2. Загрузите содержимое файла css с помощью AJAX и добавьте в

    . Ваш обратный вызов будет обратным вызовом из $.get или всего, что вы используете для загрузки содержимого файла css.

$ (“# pageCSS”). attr (‘href’, ‘./css/new_css.css’);

  • Отправка HTML-формы с использованием JQuery AJAX
  • map () get () путаница
  • Fancybox застрял в загрузке iframe в IE
  • Автоматическое изменение размера элемента SELECT в соответствии с выбранной шириной OPTION
  • Отключить кнопку в jQuery
  • jQuery UI Datepicker - отключить определенные дни
  • Сервер ASP.NET не обрабатывает страницы асинхронно
  • jQuery detect click on disabled submit button
  • Обратный вызов ошибки JQuery ajax
  • Запрос CORS с IE11
  • Как фильтровать данные jqGrid НЕ используя встроенный блок поиска / фильтра
  • Давайте будем гением компьютера.