Autor Zpráva
cink
Profil
Dobrý den, mám upravený kód z w3schools.com:
<html>
<head>
<script>
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}

function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) 
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}

function checkCookie()
{
var user=getCookie("username");
if (user!="")
  {
  window.location.replace("http://" + user + ".firecink.cz"); 
  }
else 
  {
  user = prompt("Vložte číslo stránky:","");
  if (user!="" && user!=null)
    {
    setCookie("username",user,365);
    }
  }
}
</script>
</head>
<body onLoad="checkCookie()">
</body>
</html>
To by mělo udělat, že po načtení stránky se zobrazí prompt, kde zadám číslo (1,2,3,4) a při dalším načtení už přesměruje na danou stránku (http://1.firecink.cz - http://2.firecink.cz atd.)
Teď to nefunguje, ale mě jde o něco jiného.
Chtěl bych, aby se prompt zobrazil až po kliknutí na nějaké tlačítko (<button>), a ne hned po načtení stránky. Ale při dalším načtení už bude přesměrovávat hned po načtení.
Předem díky
Trejpa
Profil
cink:
Chtěl bych, aby se prompt zobrazil až po kliknutí na nějaké tlačítko (<button>)
Tak spuštění skriptu nenastavuj pro načtení dokumentu:
<body onLoad="checkCookie()">

Ale pro klepnutí na tlačítko:
<body>
<button onClick="checkCookie()">klikni sem</button>
peta
Profil
Trejpa chyba
cink: Musis kod v checkCookie() rozdelit na dve funkce, podle if/else.
<body onLoad="checkCookie1()">
<button onClick="checkCookie2()">klikni sem</button>
Trejpa
Profil
cink:
Chyby v kódu byly dvě. Jednak syntaxe window.location a pak logická chyba v podmínce: když cookie existuje, tak přesměruje - když neexistuje, tak nastaví, ale už nepřesměruje. Podmínku jsem zkrátil a přidal funkci, která řeší to bývalé else jen na kliknutí a přitom spouští přesměrování.
<html>
<head>
<script>
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) 
  {
  var c = ca[i].trim();
  if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}
function checkCookie()
{
var user=getCookie("username");
if (user!="")
  {
  window.location="http://" + user + ".firecink.cz"; 
  }
}
function setUser()
{
var user = prompt("Vložte číslo stránky:","");
if (user!="" && user!=null)
  {
  setCookie("username",user,365);
  checkCookie();
  }
}
</script>
</head>
<body onLoad="checkCookie()">
<button onclick="setUser()">uživatel</button>
</body>
</html>
cink
Profil
Trejpa, peta:
Moc děkuji za odpověď.
Přesně to jsem hledal.

Vaše odpověď

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: