Динамический импорт таблицы стилей с помощью dojo - PullRequest
2 голосов
/ 01 сентября 2011

Какой самый лучший (самый элегантный :) способ импортировать таблицу стилей CSS из javascript.

Может быть, в dojo есть какой-то модуль, похожий на dojo.require?

Спасибо за помощь.

Ответы [ 4 ]

1 голос
/ 02 сентября 2011

Вы можете обратиться к следующей ссылке, аналогичный вопрос на stackoverflow.com

Как загрузить файлы CSS с использованием Javascript?

0 голосов
/ 30 апреля 2013

Упс, нашел это очень поздно, однако:

Получить все таблицы стилей:

require([ /* "dojo/something", */ "dojox/html/styles"],
    function( /* something, */ stylesheet ){
        console.log( stylesheet.getStyleSheets() );
    }
)

Получить специальную таблицу стилей с помощью тега href или title:

http://dojotoolkit.org/api/dojox/html/styles, см. GetStyleSheet

Вы специально спросили о dojo, и, возможно, вы захотите прочитать больше о dojox.html.styles: http://www.sitepen.com/blog/2009/03/13/dynamic-stylesheets-part-1/

0 голосов
/ 02 сентября 2011

В Dojo есть немного сахара DOM, если вам нравится:

dojo.create("link", {href:'someCssFile.css', type:'text/css', rel:'stylesheet'}, document.getElementsByTagName('head')[0])

Давным-давно загрузчик Dojo использовался для обработки таблиц стилей и автоматического извлечения CSS для модулей или виджетов (фактически абстракция для запуска чего-то подобного описанному выше). В то время для загрузки таблиц стилей приходилось иметь дело с различными причудами браузера. Оказалось, что у него много проблем с производительностью, поэтому в Dojo 1.0 таблицы стилей загружаются прямо на страницу.

0 голосов
/ 01 сентября 2011

Вы можете просто добавить элемент <link> на страницу.После добавления он загрузит CSS.

 var element = document.createElement('link');
 element.href = 'someCssFile.css';
 element.rel = 'stylesheet';
 element.type = 'text/css';

 document.body.appendChild(element);
...