Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Изменение настроек сайта и добавление параметров в cookie (https://javascript.ru/forum/events/14188-izmenenie-nastroek-sajjta-i-dobavlenie-parametrov-v-cookie.html)

Amateros 04.01.2011 21:58

Изменение настроек сайта и добавление параметров в cookie
 
Делаю на сайте специальные настройки, чтобы пользователь мог увеличить себе шрифт всего сайта... Очень хорошо, например, для слабовидящих.. Написал скрипт.. куки не загружаются.. Пожалуйста, подскажите..

<HTML><HEAD><META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<TITLE>Rabota s kukami.</TITLE>
<link href="default.css" rel="stylesheet" type="text/css" />
<a href="javascript:increaseFontSize();" title="increase">+</a> | <a href="javascript:decreaseFontSize();" title="decrease">-</a>

<script type="text/javascript" language="javascript">
function increaseFontSize()
{delete_cookie("fs");
var p = document.getElementsByTagName('div');
for(i=0;i<p.length;i++)
{
if(p[i].style.fontSize)
{
var s = parseInt(p[i].style.fontSize.replace("px",""));
};
if(s!=max)
{
s = max;
};
p[i].style.fontSize = s+"px";
};
var current_date = new Date;
var cookie_year = current_date.getFullYear ( ) + 1;
var cookie_month = current_date.getMonth ( );
var cookie_day = current_date.getDate ( );
set_cookie ( "fs", s, cookie_year, cookie_month, cookie_day );
}
function decreaseFontSize()
{delete_cookie("fs");
var p = document.getElementsByTagName('div');
for(i=0;i<p.length;i++)
{
if(p[i].style.fontSize)
{
var s = parseInt(p[i].style.fontSize.replace("px",""));
}
if(s!=min)
{
s = min;
}
p[i].style.fontSize = s+"px"
}
var current_date = new Date;
var cookie_year = current_date.getFullYear ( ) + 1;
var cookie_month = current_date.getMonth ( );
var cookie_day = current_date.getDate ( );
set_cookie ( "fs", s, cookie_year, cookie_month, cookie_day );
}
function set_cookie ( name, value, expires_year, expires_month, expires_day, path, domain, secure )
{var cookie_string = name + "=" + escape ( value );
if ( expires_year )
{var expires = new Date ( expires_year, expires_month, expires_day );
cookie_string += "; expires=" + expires.toGMTString();
}
if ( path )
cookie_string += "; path=" + escape ( path );
if ( domain )
cookie_string += "; domain=" + escape ( domain );
if ( secure )
cookie_string += "; secure";
document.cookie = cookie_string;
}
function get_cookie ( cookie_name )
{var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if ( results )
return ( unescape ( results[2] ) );
else
return null;
}
function delete_cookie ( cookie_name )
{var cookie_date = new Date ( );
cookie_date.setTime ( cookie_date.getTime() - 1 );
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
var min=16;
var max=44;
var x = get_cookie("fs");
if (x=='44')
{var p = document.getElementByTagName('div');
for(i=0;i<p.length;i++)
{var s = parseInt(p[i].style.fontSize.replace("px",""));
s = max;
};
p[i].style.fontSize = s+"px";
};
if (x=='16')
{var p = document.getElementByTagName('div');
for(i=0;i<p.length;i++)
{var s = parseInt(p[i].style.fontSize.replace("px",""));
s = min;
};
p[i].style.fontSize = s+"px";
};
</script>

</HEAD><BODY>
<div class="box3">yyyyytyyyy</div>
</BODY></HTML>

ksa 05.01.2011 17:29

Цитата:

Сообщение от Amateros
Очень хорошо, например, для слабовидящих..

Есть сочетание <Ctrl>+<колесо_мыши>...

Amateros 05.01.2011 21:15

Я знаю это.. А вот дедуля 75 летний, который хотел зарегистрироваться на прием к врачу на сайте больнице, НЕ ЗНАЕТ.. И стучит потом своим костылем чуть ли не до губернатора края (Ткачева).. Такие уж требования

dmitriymar 05.01.2011 21:24

Цитата:

Сообщение от Amateros
Я знаю это.. А вот дедуля 75 летний, который хотел зарегистрироваться на прием к врачу на сайте больнице, НЕ ЗНАЕТ.. И стучит потом своим костылем чуть ли не до губернатора края (Ткачева).. Такие уж требования

а если у этого дедули куки будут выключены? мож проще менять стиль без куков и то что стиль изменён просто передавать на другую страницу через адресную строку?

Amateros 05.01.2011 21:54

я извиняюсь.. это мой первый скрипт в моей жизни.. я не понял что вы имеете ввиду.. тут необходимо выполнить условие: когда посетитель заходит на сайт и делает настройки сайта под себя, то в следующий раз когда он зайдет на сайт, эти настройки должны автоматически загрузиться.. А как это сделать без куков, я не знаю.. Хотя сначала думал ввести регистрацию пользователей и ip, но начальство отрезало эту идею.. Вот надо так и не....т

dmitriymar 05.01.2011 22:02

по ip-не пошло бы-поскольку помимо статичных есть ещё плавающие-и в зависимости от региона их процент мож составлять практически 100%.
куки также как и скрипты могут быть отключены в браузере-так что здесь вариант 50 на 50 что можно будет сохранять в куках и менять скриптом.
наверное оптимально-логин пароль и настройки хранить на сервере и выполнять сценарии на нём-чтобы это было 100% рабочим.
но в этом случае -это не сюда а на рнр форум

Маэстро 06.01.2011 16:07

Цитата:

Сообщение от Amateros (Сообщение 86432)
А как это сделать без куков, я не знаю..

У Вас есть ряд взаимоисключающих требований (технических и от начальства), поэтому просто разместите на странице две заметные кнопки "увеличить шрифт"/"уменьшить шрифт" и от них управляйте размерами...


Часовой пояс GMT +3, время: 15:13.