mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-05-17 23:21:04 +00:00
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
/*!
|
|
{
|
|
"name": "Local Storage",
|
|
"property": "localstorage",
|
|
"caniuse": "namevalue-storage",
|
|
"tags": ["storage"],
|
|
"polyfills": [
|
|
"joshuabell-polyfill",
|
|
"cupcake",
|
|
"storagepolyfill",
|
|
"amplifyjs",
|
|
"yui-cacheoffline"
|
|
]
|
|
}
|
|
!*/
|
|
define(['Modernizr'], function(Modernizr) {
|
|
// In FF4, if disabled, window.localStorage should === null.
|
|
|
|
// Normally, we could not test that directly and need to do a
|
|
// `('localStorage' in window)` test first because otherwise Firefox will
|
|
// throw bugzil.la/365772 if cookies are disabled
|
|
|
|
// Similarly, in Chrome with "Block third-party cookies and site data" enabled,
|
|
// attempting to access `window.sessionStorage` will throw an exception. crbug.com/357625
|
|
|
|
// Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
|
|
// will throw the exception:
|
|
// QUOTA_EXCEEDED_ERROR DOM Exception 22.
|
|
// Peculiarly, getItem and removeItem calls do not throw.
|
|
|
|
// Because we are forced to try/catch this, we'll go aggressive.
|
|
|
|
// Just FWIW: IE8 Compat mode supports these features completely:
|
|
// www.quirksmode.org/dom/html5.html
|
|
// But IE8 doesn't support either with local files
|
|
|
|
Modernizr.addTest('localstorage', function() {
|
|
var mod = 'modernizr';
|
|
try {
|
|
localStorage.setItem(mod, mod);
|
|
localStorage.removeItem(mod);
|
|
return true;
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
});
|
|
});
|