Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическая смена файла css 
:(
    Опции темы
ST_Falcon
Дата 23.3.2007, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

Репутация: нет
Всего: 1



на сайте есть разные каскадные таблицы стилей. например prosto.css и ultra.css
нужно чтобы при нажатии пользователем на линк подгружался определенный css и имя файла сохранялось в куки, и В ДАЛЬНЕЙШЕМ (!) серфинге по сайту соответсвенно подгружался выбраный css.

ps. просто нужно помочь моему знакомому дизайнеру (его портфолио. рекомендую), а я в ява скриптах мелко плаваю...
PM MAIL ICQ   Вверх
boombick
Дата 23.3.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.4.2005
Где: Moscow, Russia

Репутация: нет
Всего: 9



Оффтопик. Это делается на стороне сервера
Код

<link rel="stylesheet" type="text/css" href="<?=$_COOKIE['style'] ?>" />

Самый примитивный способ

Хотя можно и на js
Код


var page_style = 'default'; //задаем значение стиля по умолчанию

function setCookie(name, value, expires, path, domain, secure) { //ставим куку
        var curCookie = name + "=" + escape(value) +
                ((expires) ? "; expires=" + expires.toGMTString() : "") +
                ((path) ? "; path=" + path : "") +
                ((domain) ? "; domain=" + domain : "") +
                ((secure) ? "; secure" : "")
        if (!caution || (name + "=" + escape(value)).length <= 4000)
                document.cookie = curCookie
        else
                if (confirm("Cookie превышает 4KB и будет вырезан !"))
                        document.cookie = curCookie
}
function getCookie(name) { //здесь получаем куку с нужным именем
        var prefix = name + "="
        var cookieStartIndex = document.cookie.indexOf(prefix)
        if (cookieStartIndex == -1)
                return null
        var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
        if (cookieEndIndex == -1)
                cookieEndIndex = document.cookie.length
        return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

function getStyle(){ //здесь поучаем куку со стилем
   if(getCookie('style')) page_style = getCookie('style');
}

document.write('<link rel="stylesheet" type="text/css" href="'+page_style+'" />');


Примерно так, но элегантнее реализовать на сервере, имхо...
ЗЫ За код не пинайте сильно, почти все писалось прямо в браузере


--------------------
Все вышесказанное - имхо, и на истину в последней инстанции не претендует
------
UNIX and other
PM MAIL WWW ICQ   Вверх
Alx
Дата 20.6.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Цитата

document.write('<link rel="stylesheet" type="text/css" href="'+page_style+'" />');

думаю это не куль. я раньше юзал DOM (appendChild) но как-то кривовато стили подгружаются, мне думается есть более правильный способ...
вот тут есть что-то интересное:
Код

totalRules = defaultSheet.cssRules.length;
lastRule = defaultSheet.cssRules[totalRules - 1];
defaultSheet.addImport("/css/wide.css", lastRule);

кто-нибудь использовал эти объекты?


--------------------
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 21.6.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



ST_Falcon, оно? (+развитие идеи)

Alx, я пользовался шпаргалкой отсюда.

Это сообщение отредактировал(а) SelenIT - 21.6.2007, 10:58


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Alx
Дата 21.6.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



мм а что по поводу индикаторов загрузки? например мне надо загрузить стиль, получить в нем свойство backgroundImage какого-нибудь элемента и сразу сделать прелоад ещё двух картинок для mouseover и  mousedown, через replace("_out","_over") и replace("_out","_down")...

onreadystatechange, onload и readyState есть в ИЕ
onreadystatechange и onload есть в Опере, readyState всегда undefined
в файрфоксе нет ни того, ни другого

какие идеи?

Это сообщение отредактировал(а) Alx - 21.6.2007, 14:28


--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.