diff --git a/snippets/isLocalStorageEnabled.md b/snippets/isLocalStorageEnabled.md new file mode 100644 index 000000000..204b96c4e --- /dev/null +++ b/snippets/isLocalStorageEnabled.md @@ -0,0 +1,26 @@ +--- +title: isLocalStorageEnabled +tags: browser,intermediate +--- + +Checks if `localStorage` is enabled. + +- Use a `try...catch` block to return `true` if all operations complete successfully, `false` otherwise. +- Use `Storage.setItem()` and `Storage.removeItem()` to test storing and deleting a value in `window.localStorage`. + +```js +const isLocalStorageEnabled = () => { + try { + const key = `__storage__test`; + window.localStorage.setItem(key, null); + window.localStorage.removeItem(key); + return true; + } catch (e) { + return false; + } +}; +``` + +```js +isLocalStorageEnabled(); // true, if localStorage is accessible +``` diff --git a/snippets/isSessionStorageEnabled.md b/snippets/isSessionStorageEnabled.md new file mode 100644 index 000000000..9aaca6aac --- /dev/null +++ b/snippets/isSessionStorageEnabled.md @@ -0,0 +1,26 @@ +--- +title: isSessionStorageEnabled +tags: browser,intermediate +--- + +Checks if `sessionStorage` is enabled. + +- Use a `try...catch` block to return `true` if all operations complete successfully, `false` otherwise. +- Use `Storage.setItem()` and `Storage.removeItem()` to test storing and deleting a value in `window.sessionStorage`. + +```js +const isSessionStorageEnabled = () => { + try { + const key = `__storage__test`; + window.sessionStorage.setItem(key, null); + window.sessionStorage.removeItem(key); + return true; + } catch (e) { + return false; + } +}; +``` + +```js +isSessionStorageEnabled(); // true, if sessionStorage is accessible +```