Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Загрузка CSS |
Автор: MrDmitry 8.4.2013, 01:21 | ||||||||
Здраствуйте. Столкнулся с такой задачей. Формирую html код
В php файле формирую html и css(только не спрашивайте зачем ![]()
Ну и в js пытаюсь вставить такой обьект на страницу.
По итогу получаю что обьект вставляется на страницу, но стили из формированого css не отоброжается. (Тоесть визуально обьект на страницу не отоброжается. Хотя если после этого добавить такой обьект в html страницу "Ручками"
то стили из файла style.css применяются. |
Автор: Arantir 8.4.2013, 02:00 |
Только не говорите, что запись в style.css производится между завершением загрузки страницы и добавлением элемента #test... |
Автор: MrDmitry 8.4.2013, 03:48 |
Не совсем понял вопроса. Что значит между завершением загрузки страницы? Да, страница уже загружена и добавление происходит по нажатию кнопочки. Теоретически я конечно догадываюсь почему не работает, но надеюсь что решение можно найти или тут мне подскажут иной путь решения задачи )) |
Автор: MrDmitry 8.4.2013, 16:21 |
Есть у кого нибуть какие нибуть мысли? |
Автор: MrDmitry 8.4.2013, 20:21 | ||
я это понимаю
Нууууу, именно это я и хочу, менять стиль у пользователя на лету. А какие варианты есть еще? Учитывая что сам css стиль формируется в php, передавать его в массив jq, и применять к обьеку через addClass? |
Автор: Sanchezzz 8.4.2013, 22:01 | ||||
:yes либо Создать
и
должно сработать но не проверял. |
Автор: Arantir 8.4.2013, 22:28 | ||||
Суть работы протокола HTTP знаете? Запрос — ответ. Изменение файла на сервере никаким образом не сказывается на уже загруженной странице. Минимум — файл будет просто перезагружен при обновлении страницы. Но, в зависимости от настроек кеша, он еще неделю может старым у пользователя оставаться. Чтобы файл обновился, этому должен предшествовать запрос. Вы должны явным образом заставить браузер загрузить содержимое этого файла. Для этого можно воспользоваться способом, аналогичным добавлению/изменению картинок средствами JS. При добавлении картинки браузер автоматически ее загрузить (чтобы показать на странице, конечно же). Так вот, для тега link действует такой же принцип.
Второй из способов следует тому же принципу, это добавление тега style. При добавлении style через JS браузер так же попытается применить все стили внутри него, ибо это есть единственная суть сия тега.
Кстати, есть одна полезная особенность — любые скрипты в любом случае загружаются уже после тега head в DOM (так как они всегда либо в нем, либо ниже него). Так что для добавления нового стиля на страницу даже не обязательно ждать загрузки страницы (события load), можно вписать добавление первой же строкой первого скрипта и это будет работать. Так что, если стиль должен быть применен сразу, то эта особенность может помочь избежать эффекта блика, когда стиль резко меняется где-то между началом загрузки страницы и догрузкой DOM, css и js. Добавлено через 2 минуты и 20 секунд Sanchezzz, долго писал =) |
Автор: Sanchezzz 8.4.2013, 22:46 |
Arantir, Зато развернутый ответ как статья + еще один способ о котором я не вспомнил. Можно попробывать еще аттребут сменить у линка с гет параметром в виде времени тоже может сработать. |