Created
May 5, 2017 09:10
-
-
Save rmpel/812e5b47456b3352d5ffb74a0f3c48b1 to your computer and use it in GitHub Desktop.
LocalStorage/SessionStorage in Incognito detectie (dutch version)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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