Чуток надо доработать скрипт имени.
Есть скрипт, при заходе на страницу спрашивает имя и запоминает куки, если нажал на отмену или крестик ставится определенное имя например unnamed,
но есть 2 проблемы... 1 проблемма - нужно как то сделать через ссылку, удаления имени чтобы при заходе на эту страницу его опять спросили имя. то есть удаления куков имени. и 2 проблемма - ели не ввести ничего и нажать ОК то будет пустое имя а не unnamed как хотелось бы... я сам в яве не шарю если и шарю поверхностно.. и так сам скрипт: <a href="">Поменять ник</a> <SCRIPT LANGUAGE="JavaScript"> var username = GetCookie('username'); if (username == null) { username = prompt('Введите ваш ник на АНГЛИЙСКОМ!',""); if (username == null) { alert('Вы не ввели ваш ник, так что будет наш =) '); username = 'unnamed'; } else { // don't set the username cookie.... because the user refused to tell you. // they will be prompted next time.... pathname = location.pathname; myDomain = pathname.substring(0,pathname.lastIndexOf('/')) +'/'; // set expiry date to 1 year from now. var largeExpDate = new Date (); largeExpDate.setTime(largeExpDate.getTime() + (30 * 24 * 3600 * 1000)); SetCookie('username',username,largeExpDate,myDomain); } } function getCookieVal (offset) { var endstr = document.cookie.indexOf (";", offset); if (endstr == -1) endstr = document.cookie.length; return unescape(document.cookie.substring(offset, endstr)); } function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return getCookieVal (j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } function SetCookie (name, value) { var argv = SetCookie.arguments; var argc = SetCookie.arguments.length; var expires = (argc > 2) ? argv[2] : null; var path = (argc > 3) ? argv[3] : null; var domain = (argc > 4) ? argv[4] : null; var secure = (argc > 5) ? argv[5] : false; document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : ""); } var today = new Date () var hrs = today.getHours(); document.writeln("тест"); document.writeln("ник: "+ username +""); </SCRIPT> |
На седьмой строчке сравнение должно быть не с null , а с пустой строкой, то есть "", или вобще просто if (!username) ...
А по удалению гугли чета типа deleteCookie. |
Цитата:
|
function del_cookie
(name) { document.cookie = 'roundcube_sessauth' + '=; expires=Thu, 01- Jan-70 00:00:01 GMT;'; } |
<script type="text/javascript"> function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+';path=/'+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} function deletecookie( name) {if ( getcookie( name ) ) document.cookie = name + '=1; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/';} </script> </script> <script type="text/javascript"> setcookie("Test",22222); alert(getcookie("Test")) deletecookie("Test") alert(getcookie("Test")) </script> |
Vampir3,
Я вставил вызываю <a href="" onclick="del_cookie(name)">Поменять ник</a> и <a href="" onclick="del_cookie()">Поменять ник</a> но не работает.. |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
<a href="" onclick="del_cookie('name')">Поменять ник</a> и <a href="" onclick="del_cookie('')">Поменять ник</a> и ничего не меняется |
Цитата:
А про кавычки ты подругому запоешь, когда разберешься с функцией и уберешь кавычки вновь. |
Цитата:
она уже давно тут... function del_cookie (name) { document.cookie = 'name' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; } |
короче походу в первом куки записываются напрямую а не под именем
я далек от явы и переделывать мне будет сложно.. решил взять другой: <SCRIPT LANGUAGE="JavaScript"> function setCookie(name, value, expires, path, domain, secure) { document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "") } 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 fixDate(date) { var base = new Date(0) var skew = base.getTime() if (skew > 0) date.setTime(date.getTime() - skew) } var now = new Date() fixDate(now) now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000) var nam = getCookie("login") setCookie("login", nam, now) function ok() { setCookie("login", document.f.login.value, now) window.location.reload(); } document.write('<form name="f">Ваше имя: <input type="text" name="login" size="10"><input type="button" value="ОК" onClick="ok();"></form>') </SCRIPT> <!--Второй скрипт для вывода имени--> <SCRIPT LANGUAGE="JavaScript"> var nam = getCookie("login") if (!nam) {document.write("<b>Привет!!!</b><br/>")} else {document.write("<b>Привет " + nam + "</b><br/>")} </SCRIPT> в этом хоть куки записываются под "login" их вроде по проще менять.. |
Цитата:
|
Цитата:
пишешь всякую хню... не бы помочь.. |
Цитата:
|
Часовой пояс GMT +3, время: 01:00. |