Чуток надо доработать скрипт имени.
Есть скрипт, при заходе на страницу спрашивает имя и запоминает куки, если нажал на отмену или крестик ставится определенное имя например 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, время: 02:29. |