Полная смена css
Мне нужен скрипт смены дизайна (то есть смены css) Вот в паблике я нашел скрипт Нажмите сюда! но он не доработан.... на сайте укоза там как бы сайт разделен http://domain.ru/ и http://domain.ru/index/ поэтому когда я меняю на странице дизайн (css) то он не меняется http://domain.ru/index/ и наоборот....
Заранее спасибо |
Johan, куда проще и продуктивнее сделать простой тестовый пример и выложить его тут.
Может тебе его и подправят... |
Сам скрипт
function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length; return unescape(document.cookie.substring(c_start,c_end)); } } return ""; } function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); } var diz = getCookie('mydiz') ? getCookie('css1') :'styles1'; document.write('<link type="text/css" rel="StyleSheet" href="http://poligon09.do.am/'+diz+'.css">'); function dizsave() { setCookie('mydiz',document.getElementsByName('mdiz')[0].value, 365); location.reload(); } Смена Код:
<select name="mdiz"> Вот я создал сайт специально на укозе что бы показать проблему http://poligon09.do.am/ я создал 2 ксс, 1 - стандартный 2 - поменял верхний беграунд и цвет шрифта слева менять дизайн когда меняешь дизайн на главной странице - тобишь http://poligon09.do.am/, диз меняется везде во всех модулях, кроме страниц http://poligon09.do.am/index/ - а это профиль, лс, и дополнительные страницы - вот например такие как hhhhhhhhhh в меню, а если сменить дизайн на той же страницы hhhhhhhhhh то он сменится только на страницах http://poligon09.do.am/index/ (профиль лс итп) Что бы посмотреть ник и пароль на сайте test |
хелп
|
плиз
|
<link rel="stylesheet" type="text/css" href="style1.css" /> <script type="text/javascript"> window.onload = function(){ var selectedElem = document.getElementById("menu").getElementsByTagName('select'); var getElemsName = document.getElementsByTagName('link'); var getStyleName = "style2.css"; //название нового подключаемого файла for(i=0; i<selectedElem.length; i++) { selectedElem[i].onchange = function(){ for(i=0; i<getElemsName.length; i++){ var getOldElem = getElemsName[i].getAttribute("href") ; if (getElemsName[i].hasAttribute("href") && getElemsName[i].getAttribute("href") != getStyleName){ getElemsName[i].removeAttribute('href'); getElemsName[i].setAttribute("href", getStyleName); alert('Файл ' + getOldElem+ ' изменент на ' + getElemsName[i].getAttribute("href")); } } } selectedElem[i].onfocus = function() { this.form.reset(); } } } </script> <div id="menu"> <form action=""> <select> <option selected="selected" value="0"> - - - выберите - - - </option> <option value="1">изменить стиль страницы</option> </select> </form> </div> |
monolithed, о можно с куками? и как сделать если у меня не 2 css
|
"А кушать вы что, тоже за меня будете?" © "Двое из ларца"
|
<link rel="stylesheet" type="text/css" href="style1.css" /> <script type="text/javascript"> window.onload = function(){ var selectedElem = document.getElementById("menu").getElementsByTagName('select'); var getElemsName = document.getElementsByTagName('link'); for(i=0; i<selectedElem.length; i++) { selectedElem[i].onchange = function(){ for(i=0; i<getElemsName.length; i++){ var getStyleName = this.options[this.selectedIndex].value; var getOldElem = getElemsName[i].getAttribute("href"); var expires = new Date(); expires.setTime(expires.getTime() + (365 * 24 * 60 * 60 * 1000)); if (getElemsName[i].hasAttribute("href") && getElemsName[i].getAttribute("href") != getStyleName){ getElemsName[i].removeAttribute('href'); getElemsName[i].setAttribute("href", getStyleName); document.cookie = 'style' + '=' + encodeURIComponent(getStyleName) + '; expires=' + expires.toGMTString() + '; path=/; domain=' + window.location.hostname; alert('Файл ' +getOldElem+ ' изменент на ' +getCookie('style')); } } } function getCookie(name) { var regexp = new RegExp("(?:; )?" + name + "=([^;]*);?"); if(regexp.test(document.cookie)){ return decodeURIComponent(RegExp["$1"]); } return false; } selectedElem[i].onfocus = function() { this.form.reset(); } } }; </script> <div id="menu"> <form action=""> <select> <option disabled="disabled" selected="selected" value="0"> - - - Выберите - - - </option> <option value="style1.css">style1</option> <option value="style2.css">style2</option> <option value="style3.css">style3</option> </select> </form> </div> PS: не забудьте положить подключаемые файлы на сервер и помните, что это черновой вариант, который возможно требует доработок. |
monolithed спасибо, но смотри, я поставил скрипт на http://poligon09.do.am/, и смотри, теперь на страницах http://poligon09.do.am/index/, вообще ксс не распознает, и даже не меняется, куки тоже не распознаются..
|
У меня все работает! У вас style1 и style2 подключены, а style3 нет!
Также я писал, что это черновой вариант, который требует доработок, сейчас у меня нет свободного времени чтобы это делать за вас! |
я знаю что 3его нет, зайди на страницу hhhhhhhhhh...... а за деньги поможешь? готов заплатить.....
|
На форуме есть раздел работа там с удовольствием и быстро помогут. Но лично мое мнение, что лучше самому решить эту задачу т.к. сложного там ничего, вопрос времени.
ps: 1. вообще сохранять в кукисах такие вещи не есть хорошо, т.к. у людей может быть отключен JavaScript, правельней вести сессии на стороне сервера, но на вашем хостинге это не вариант... 2. стили на других страницах слетают потомому как они на них не подключаются. Отключите JavaScript в браузере и посмотрите! |
<link rel="stylesheet" type="text/css" href="css1.css" />
замените на: <link rel="stylesheet" type="text/css" href="http://poligon09.do.am/css1.css" /> и сразу увидите результат! |
Часовой пояс GMT +3, время: 07:37. |