Сразу отметим, что полноценного ввода-вывода информации в/из файла на диске клиентский Javascript,
интерпретаторы которого услановлены на всех современных браузерах, не поддерживает
по соображениям безопасности.
Однако существует возможность записывать пары типа "имя = значение" в так называемые cookie -
специальные файлы, находящиеся в определенном месте на диске и используемые для сохранения
некоторых данных на компьютере клиента
(подробнее - см., например ).
Название, формат хранимых
данных, домустимый размер, местоположение cookie-файлов зависит от используемого броузера и
настроек клиента. (Для некоторых версий FireFox, например, этот файл называется "cookies.txt"
и находится в настройках профиля пользователя браузера.)
1. Установка cookie.
Для установки cookie требуется выполнить обращение к объекту cookie вида:
document.cookie="имя_переменной=значение_переменной; path=путь; expires=дата";
Не вдаваясь в подробности, не существенные для дальнейшего изложения, приведем пример
скрипта для установки в cookie значений переменных х и y:
<script type="text/javascript">
// Запрос пользователю, чему будет равно х
x= Number(prompt("x=",33));
// Собственно установка значения х в cookie
document.cookie="x="+x+"; path=/; expires=Mon, 01-Jan-2020 00:00:00 GMT";
// Запрос пользователю, чему будет равно y
y= Number(prompt("y=",44));
// Собственно установка значения y в cookie
document.cookie="y="+y+"; path=/; expires=Mon, 01-Jan-2020 00:00:00 GMT";
</script>
Вы можете выполнить эту программу в новом окне браузера.
Для удаления из cookie установленного значения переменной можно выполнить тот же пример, но
указать expires= прошедшая_дата, например, 2010-й год:
document.cookie="x="+x+"; path=/; expires=Mon, 01-Jan-2010 00:00:00 GMT";
document.cookie="y="+y+"; path=/; expires=Mon, 01-Jan-2010 00:00:00 GMT";
2. Получение значения переменных из cookie.
Для того, чтобы просто вывести значения всех установленных cookie (для данного домена)
достаточно выполнить:
alert(document.cookie);
или
document.write(document.cookie);
Но для получения значения конкретной переменной желательно "вырезать" значение этой
переменной из строки вида "переменная1=значение1; переменная2=значение2; переменная3=значение3;...".
Для этого можно использовать функцию read_cook из следующей программы:
<script type="text/javascript">
// Определяем функцию получения значения переменной из cookie
function read_cook(name) // name - имя переменной
{
xn=name+"=";
ln=xn.length;
c=document.cookie;
s=c.indexOf(xn);
if(s==-1) return ("no such a cookie");
else
{
e=c.indexOf(";", s + ln);
if(e==-1) e=c.length;
var x=c.substring(s + ln, e);
return (x);
}
}
// Обращаемся к функции и преобразуем полученные значения к числовым (Number)
x=Number(read_cook("x"));
y=Number(read_cook("y"));
// Пишем ответы
alert("x="+x+" y="+y+ " x+y="+(x+y));
document.write("x="+x+" y="+y+ " x+y="+(x+y));
</script>
Вы можете выполнить эту программу в новом окне браузера.
В read_cook используются следующие стандартные функции JavaScript:
- строка.length - определение длины строки;
- строка.indexOf(подстрока) - определение номера инденса(символа) начала подстроки в строке;
- подстрока = строка.substring(start, end) - выделение из строки подстроки, начиная с символа номер start и заканчивая символом номер end.
<<ранее
к оглавлению далее>>
аналог на Fortran
аналог на Basic
аналог на Pascal
аналог на C
Используются технологии
uCoz