Показать сообщение отдельно
  #6 (permalink)  
Старый 25.12.2014, 02:42
Новичок на форуме
Отправить личное сообщение для rygoravich Посмотреть профиль Найти все сообщения от rygoravich
 
Регистрация: 24.12.2014
Сообщений: 2

Сообщение от danik.js Посмотреть сообщение
Да ладно? Это почему? Если не радуют задержки на лишний http-запрос стиля, то объединяй все стили в один файл.
Напротив - я как раз хочу максимально разделить css. Дело в том, что прописанные в целевом css стили понадобятся только на некоторых страницах, причем будут востребованы только незначительной долей посетителей - зачем включать их в общий файл? Насчет задержек - они не волнуют, все равно css кэшируется браузером, а запрос из js обслуживается уж никак не быстрее, чем сгенерированный браузером на основе тега style. Цель - именно избавится от необходимости прописывать этот тег. Фишка в том, что стили в этом css применяются исключительно для элементов, сгенерированных одним конкретным js, тогда зачем прописывать в html и script и link, если можно подгрузить css-файл из скрипта?

Сообщение от BETEPAH Посмотреть сообщение
сами же ответили на свой вопрос. Прописывать относительный путь.
Так относительный путь будет искать файл относительно не js-файла, а текущего документа... Предположим, есть файлы (путь от корня сайта) /cmf/js/plugin1/plugin.js и /cmf/js/plugin1/plugin.css. Можно загрузить css, указав путь /cmf/js/plugin1/plugin.css, однако на других проектах файлы могут лежать не в /cmf/js/plugin1/, а, например, в /engine/js/plugin1/ или в /other/core/js/plugin1/. А если мы укажем просто имя файла (поскольку он лежит в одной папке с js), то браузер будет считать, что путь указан относительно текущего html-документа и будет пытаться грузить его как /plugin.css или, например, /news/plugin.css - в зависимости от того, на какой странице находится пользователь.

Сообщение от Deff Посмотреть сообщение
Выделить установку css в отдельную функцию, с прописанным уникальным атрибутом в теге style или link, дабы проверять нужна ли сама установка, или тег со стилем уже стоит, эту проверку делать в самой функции.

Тогда просто вызываете функцию в нужных вам скриптах
Цель как раз в том, чтобы не прописывать этот css в html вообще - пусть он грузится только по инициативе js...

Сообщение от danik.js Посмотреть сообщение
RequireJS вроде умеет css подгружать. Но я считаю не нужно этого делать. Юзай RequireJS для асинхронной загрузки и управлением зависимостями между модулями.
Ну, просто подгружать стили и я умею, вот функция:

function addCss(path) {
	var el = document.createElement('link');
	el.rel = 'stylesheet';
	el.href = path;
	el.type = 'text/css';
	var head1 = document.getElementsByTagName('head');
	head1[0].appendChild(el);
}


Вопрос - как вычислить параметр, с которым ее вызывать, с учетом того, что css лежит в той же папке, что и js-файл, из которого она будет вызвана?

Т.е. в файле, например, /cmf/js/plugin1/plugin.js осуществляется вызов этой функции, нужно, чтобы js знал, по какому пути он лежит, чтобы потом на его основе вычислить путь к целевому css...

Неужели совсем нет никакого способа определить, откуда запущен конкретный код?
Ответить с цитированием