<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Example</title>
</head>
<body onLoad=delCookie("example")>
<div valign=top>
<!-- --------------------- -->
<SCRIPT type="text/javascript" language="JavaScript">
function setCookie(name, value, expires, path, domain, secure)
{
document.cookie = name + "=" + value +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
</SCRIPT>
<!-- --------------------- -->
<SCRIPT type="text/javascript" language="JavaScript">
function getCookie( name )
{
var cookie = " " + document.cookie;
var search = " " + name + "=";
var setStr = null;
var offset=0;
var end=0;
if (cookie.length > 0)
{//___Проверка наличия search в cookie.
offset = cookie.indexOf( search );
if (offset != -1)
{//___Определение кол-ва символов в search.
offset += search.length;
//___Проверка наличия символов за "=".
end = cookie.indexOf("=", offset+1);
if (end == -1)
{//___Определение общей длины cookie.
end = cookie.length;
}
//document.write("1. offset=", offset, " end=", end);
setStr = cookie.Substring(offset, end);
//setStr = document.cookie;
}
}
return(setStr);
}
</SCRIPT>
<!-- --------------------- -->
<SCRIPT type="text/javascript" language="JavaScript">
function delCookie( name )
{
if(getCookie( name ))
document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
</SCRIPT>
<!-- =========================== -->
<td width=402 height=190 valign=top>
<table width=402 height=190 cellspacing=0 cellpadding=0 border=0>
<td width=20> </td>
<td width=382 valign=top>
<form name="Example" method="post" action="http://127.0.0.1/cgi-bin/exam-1.exe">
<img SRC=1.gif height=69 width=1>
<br>
<input type=submit value="Кнопка">
<br><br><br>
<br><img SRC=1.gif width=10 height=1>
<input type=text name=1 value=" 1 " size=1 onKeyDown="k()">
<input type=text name=2 value=" 2 " size=1 onKeyDown="k()">
<input type=text name=3 value=" 3 " size=1 onKeyDown="k()">
<input type=text name=4 value=" 4 " size=1 onKeyDown="k()">
<input type=text name=5 value=" 5 " size=1 onKeyDown="k()">
<input type=hidden name=hid value=Parter_$_9001724>
</form>
</td>
</table>
</td>
<!-- --------------------- -->
<SCRIPT type="text/javascript" language="JavaScript">
function k()
{ var a_1 = Array(0,1,2,3,4,5);
var a_2 = Array(0," 1 "," 2 "," 3 "," 4 "," 5 ");
var el=window.document;
var ev=window.event;
var j, NUMBER, num;
//_______
switch (ev.keyCode)
{ case 9: // Tab.
return;
case 13: // Enter
return;
case 46: // Del
num = ev.srcElement.value; // !!!!
if (ev.srcElement.value=="")
{
j=ev.srcElement.name;
ev.srcElement.value=a_2[j];
}
else
{ ev.srcElement.value="";
NUMBER = getCookie("example");
if (NUMBER != null)
{
NUMBER = NUMBER + num;
delCookie("example");
setCookie("example", NUMBER);
NUMBER = getCookie("example");
window.confirm( NUMBER );
}
else
{ NUMBER = num;
setCookie("example", NUMBER);
window.confirm( document.cookie );
}
}
ev.srcElement.focus();
ev.srcElement.select();
ev.returnValue=false;
return;
}
}
</SCRIPT>
</div>
</body>
</html>
Почему у меня в функции getCookie() при JavaScript выполнение document.cookie.substring(x,y) прерывается из-за "Объект не поддерживает это свойство или метод"?
Выполнение этой последней функции прерывается на самом интересном месте -- выполнении document.cookie.substring(x,y), примененной функции для
получении записи, содержащейся в cookie. Выдается сообщение "Объект не поддерживает это свойство или метод" . Интересно еще и то, что описание кода getCookie() поступило с codenet.ru. Обращение к MSDN подтвердило существование метода Substring(x,y): но не более того. Не думаю, что публикация на codenet.ru кода функций проводилаь без ее проверки. Так в чем же причина неработоспособности метода Substring(x,y) в моем случае его применения? Ведь
я старался не откланяться в своей работе от опубликованного исходного кода.
- Покажите свой код, что получаете при выполнении, что в куках и в каком браузере. от Romik, 03 мая 2012 года
Попробуйте document.cookie.toString()
Код:
(определение номера картинки, адрес записи в объекте, рассмотрение объекта анимации и т.д.).
----------------------------------------------
To Romik. Высылаю вам htm-файл с исходным кодом -- zz.htm. В браузере программа работает следующим образом. Удаляется по Del цифра в первой
форме (любой!) -- выводится окно подтверждения с именем cookie. Затем удаляется (Del) цифра из следующей формы. Тут бы мне и получить в окне
подтверждения две цифры (без наименования kookie), но... выдается сообщение о неподдержке использованного свойства или метода Сообщаю также,
что браузер -- IE версии 5. Очень жду результата вашего исследования! Спасибо, что заинтересовались моей проблемой. Hallonew.
Программа прекрасно работает! Дополнение к коду выше: чтобы нажатие на кнопку "Отменить" в окне alert оборачивалось
восстановлением первоначальной записи, например, " 2 ", необходимо использовать не одно NUMBER, а NUMBER_1 и
NUMBER_2. Записать также var k=true; изменить на k=window.confirm(NUMBER_2);, внести дополнение после .confirm()
if(k==false) { : где удалить существующий cookie и создать setCookie("example", NUMBER_2); В код выше внести также
отслеживание нажатия клавиш со стрелками. Данная работа предназначена для предоставления возможности пользо-
вателю на удаленной рабочей станции (на улице, в магазине) сначала составить слово адреса своей электронной почты,
а также номер интересной для него информации и отослать на сервер провайдера, чтобы информация была отослана
ему в почтовы ящик. Спасибо всем за участие! На моей памяти программиста-самоучки это 2 случай нераспознавания
записи кода. Hallonew.