| Autor | Zpráva | ||
|---|---|---|---|
| cink Profil |
#1 · Zasláno: 31. 3. 2014, 07:35:48
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>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 |
#2 · Zasláno: 31. 3. 2014, 08:37:02
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 |
#3 · Zasláno: 31. 3. 2014, 08:56:41
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 |
#4 · Zasláno: 31. 3. 2014, 09:42:20
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. |
||
|
Časová prodleva: 12 let
|
|||
0