Esiste un modo per verificare se il client accetta i cookie solo con il codice javascript?Verifica se il client accetta i cookie in javascript?
risposta
Certo, prova a impostarne uno e leggerlo.
Questo dovrebbe fare il trucco:
function areCookiesEnabled() {
document.cookie = "__verify=1";
var supportsCookies = document.cookie.length >= 1 &&
document.cookie.indexOf("__verify=1") !== -1;
var thePast = new Date(1976, 8, 16);
document.cookie = "__verify=1;expires=" + thePast.toUTCString();
return supportsCookies;
}
Questo imposta un cookie con scadenza session-based, i controlli per la sua esistenza, e quindi imposta nuovamente nel passato, rimuoverlo.
Per coloro che utilizzano jQuery Cookie per gestire e creare i cookie qui è un modo semplice per controllare i cookie e, dopo aver verificato il cookie, eseguire una funzione basata sui cookie abilitati o disabilitati.
//Create Session Cookie
$.cookie('test-for-cookie', '1');
//Test for Session Cookie
var yesCookie = $.cookie('test-for-cookie');
if (yesCookie == 1) {
//Run function if cookies are enabled.
} else{
//If cookies are not enabled run this function.
}
La proprietà cookieEnabled
restituisce un valore booleano che specifica se i cookie sono abilitati nel browser
<script>
if (navigator.cookieEnabled) {
// Cookies are enabled
}
else {
// Cookies are disabled
}
</script>
Questo non sembra funzionare su IE. –
@Stephen Sembra funzionare almeno da IE7 durante l'emulazione in IE10. Hai qualche fonte? –
Emulare una versione di IE più vecchia da una più recente, non è molto affidabile per la mia esperienza. E questo è un po 'mite. Inoltre, i browser hanno una storia di mentire sulle loro capacità quando "chiesto". In realtà il test di una funzionalità è solitamente una buona idea. –
Perché 'document.cookie.length> 1' e non' documento .cookie.length> = 1'? – deamon
hah, buona cattura! –
non funziona per ie. Per chrome e firefox restituisce false quando i cookie sono disabilitati, ma nel caso di ie ritorna true anche se i cookie sono disabilitati, Si noti che sto usando l'IE11. Per favore aiuto !!!! – Developer