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: 10 let
|
0