Skip to content

Instantly share code, notes, and snippets.

@rmpel
Created May 5, 2017 09:10
Show Gist options
  • Select an option

  • Save rmpel/812e5b47456b3352d5ffb74a0f3c48b1 to your computer and use it in GitHub Desktop.

Select an option

Save rmpel/812e5b47456b3352d5ffb74a0f3c48b1 to your computer and use it in GitHub Desktop.
LocalStorage/SessionStorage in Incognito detectie (dutch version)
var localStorageEnabled = false;
if ('localStorage' in window) {
localStorageEnabled = true;
try {
localStorage.setItem('localStorage', 1);
localStorage.removeItem('localStorage');
} catch (e) {
localStorageEnabled = false;
Storage.prototype._setItem = Storage.prototype.setItem;
Storage.prototype.setItem = function() {};
}
}
// Indien localstorage nodig (je kunt niet zonder)
if (!localStorageEnabled) {
alert('Onze website werkt helaas niet correct in incognito modus, onze excuses voor het ongemak');
}
// Indien localstorage als "bonus" is; het maakt het sneller, maar is niet noodzakelijk;
// gebruik de localStorageEnabled variabele om de localStorage.setItem, localStorage.removeItem, sessionStorage.setItem en sessionStorage.removeItem over te slaan
// makkelijkst is om een wrapper-functie te schrijven;
window.ls = {
setItem: function (name, value) {
if (localStorageEnabled) {
localStorage.setItem(name, value);
}
},
getItem: function (name) {
if (localStorageEnabled) {
return localStorage.getItem(name);
}
return false;
},
};
window.ss = {
setItem: function (name, value) {
if (localStorageEnabled) {
sessionStorage.setItem(name, value);
}
},
getItem: function (name) {
if (localStorageEnabled) {
return sessionStorage.getItem(name);
}
return false;
},
};
// mooie van deze manier is dat je ook alternatieve opslagmethoden kunt implementeren voor browsers zonder localStorage (bijvoorbeeld cookies)
// en je kunt naar wens een struct to string en string to struct conversion doen bij opslag respectievelijk ophalen.
// JSON.stringify en JSON.parse bijvoorbeeld.
// vervolgens doe je dan voor localStorage (persistent)
ls.getItem('myVar');
ls.setItem('myVar', 'myValue');
// en voor sessionStorage (session-based)
ss.getItem('myVar');
ss.setItem('myVar', 'myValue');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment