Skip to content

Instantly share code, notes, and snippets.

@miguelmota
Created November 20, 2019 02:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miguelmota/7bcaf4cd5ebf19bde35375dbda9ab49d to your computer and use it in GitHub Desktop.
Save miguelmota/7bcaf4cd5ebf19bde35375dbda9ab49d to your computer and use it in GitHub Desktop.
JavaScript check if localStorage is supported in browser
export const localStorageAvailable = () => {
return storageAvailable('localStorage')
}
const storageAvailable = (kind = 'localStorage') => {
let storage
try {
storage = window[kind]
let x = '__storage_test__'
storage.setItem(x, x)
storage.removeItem(x)
return true
} catch (e) {
return e && (
// everything except Firefox
e.code === 22 ||
// Firefox
e.code === 1014 ||
// test name field too, because code might not be present
// everything except Firefox
e.name === 'QuotaExceededError' ||
// Firefox
e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&
// acknowledge QuotaExceededError only if there's something already stored
(storage && storage.length !== 0)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment