06. februar 2004 - 10:29Der er
17 kommentarer og 1 løsning
javascript der undersøger, om cookies er slået til
Jeg ønsker at lave følgende vha. java script:
det skal undersøges, om brugeren har cookies slået til i browseren. Kan man det på en rimelig sikker måde, der går på tværs af IE/NN - og flere versioner?
//setting test cookie document.cookie = "cookieName=cookiealue"; var cookiesenable = document.cookie.indexOf("cookieName") ; if(cookiesenable== -1){ alert("Cookies are not enabled"); } else { alert("Cookies are enabled"); } </script>
Hov - nu prøvede jeg lige at gå ind på en side, der kræver cookies og blev stoppet, fordi jeg ikke havde dem slået til. Så det er slået rigtig nok fra i browseren. Dvs. det må være javascriptet, der ikke umiddelbart fungerer sammen med IE 6.0!
//setting test cookie document.cookie = "cookieName=cookievalue"; var cookiesenable = document.cookie.indexOf("cookieName") ; if(cookiesenable== -1){ alert("Cookies are not enabled"); } else { alert("Cookies are enabled"); } </script>
domaz.dk >> Vågn op! Det er magen til den jeg smed på. Du har bare rettet cookiealue til cookievalue, men der bliver slet ikke checket for værdien. Kun om parametret cookieName er sat eller ej.
ripley >> Jeg har prøvet et par andre scripts, og de virker heller ikke. Hvad laver du din hjemmeside i. Måske du skal sætte en variabel serverside, sende den med ud, og så smage om den stadig er tilgængelig serverside.... Her tænker jeg PHP, ASP osv.... De kan alle håndtere cookies.
roenving >> Jeg tvivler. Jeg har prøvet at slå cookies fra. Slette alle eksisterende cookies. Lukke alle instanser af MSIE. Renamer navn og værdi for den pågældende cookie jeg forsøger at sætte.
Det virker stadig fint i Mozilla og Opera men ikke i MSIE. :-/
Der var jeg lidt for hurtig, for både IE6 og Moz1.5 havde en navigator.cookieEnabled, som sender true eller false, hvor langt tilbage, den virker, vil jeg lige kigge efter !-)
function checkForCookies() { //setting test cookie document.cookie = "cookieName=cookievalue"; var cookiesenable = document.cookie.indexOf("cookieName") ; if(cookiesenable== -1 || (!navigator.cookieEnabled)) { alert("Cookies are not enabled"); } else { alert("Cookies are enabled"); } }
</SCRIPT> </head>
<body onload="checkForCookies();"> test
</body> </html>
Den bliver ved med at sige, at cookies ikke er enabled. I Netscape 6.0 siger den, at de er slået fra - dvs. her virker scriptet rigtigt. Er der nogen, der kan forklare det?
Hm - ser ud til, at problemet skyldes, at den lægger en cookie på maskinen, uanset om de er slået fra eller ej - fordi jeg tester lokalt. Når jeg tilgår siden udefra, er det ikke noget problem ...??
Ahhhh... IE arbejder jo med zoner, så du kan have forskellige sikkerhedsindstillinger for din maskine, lokalnetværk og internet. Og den er nok default indstillet til at tillade noget nær det hele når det er lokalt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.