Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Чуток надо доработать скрипт имени. (https://javascript.ru/forum/misc/39516-chutok-nado-dorabotat-skript-imeni.html)

Tvis 02.07.2013 21:37

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

danik.js 02.07.2013 22:03

На седьмой строчке сравнение должно быть не с null , а с пустой строкой, то есть "", или вобще просто if (!username) ...
А по удалению гугли чета типа deleteCookie.

Tvis 03.07.2013 00:36

Цитата:

Сообщение от danik.js (Сообщение 259761)
На седьмой строчке сравнение должно быть не с null , а с пустой строкой, то есть "", или вобще просто if (!username) ...
А по удалению гугли чета типа deleteCookie.

да я пытался всунуть deleteCookie но у меня ничего не получилось...:help:

Vampir3 03.07.2013 00:45

function del_cookie
(name) {
document.cookie =
'roundcube_sessauth' +
'=; expires=Thu, 01-
Jan-70 00:00:01 GMT;';
}

Deff 03.07.2013 01:27

<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>

Tvis 03.07.2013 02:00

Vampir3,
Я вставил вызываю
<a href="" onclick="del_cookie(name)">Поменять ник</a>
и
<a href="" onclick="del_cookie()">Поменять ник</a>

но не работает..

Tvis 03.07.2013 02:02

Цитата:

Сообщение от danik.js (Сообщение 259761)
На седьмой строчке сравнение должно быть не с null , а с пустой строкой, то есть "", или вобще просто if (!username) ...
А по удалению гугли чета типа deleteCookie.

Цитата:

Сообщение от Deff (Сообщение 259786)
<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>

что то не совсем так тут, я бы хотел доработать скрипт который в первом сообщении

danik.js 03.07.2013 05:38

Цитата:

Сообщение от Tvis
но не работает..

А кавычки за тебя дедушка расставит?

Tvis 03.07.2013 16:08

Цитата:

Сообщение от danik.js (Сообщение 259797)
А кавычки за тебя дедушка расставит?

Кавычки тоже ничего не решают...

<a href="" onclick="del_cookie('name')">Поменять ник</a>
и
<a href="" onclick="del_cookie('')">Поменять ник</a>

и ничего не меняется

danik.js 03.07.2013 16:31

Цитата:

Сообщение от Tvis
Кавычки тоже ничего не решают...

Решает твоя функция del_cookie, которую ты почему-то боишься показать. Ну сиди дальше, жди озарения..
А про кавычки ты подругому запоешь, когда разберешься с функцией и уберешь кавычки вновь.


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