|
1 |
| -try { |
2 |
| - if (!window.localStorage || !window.sessionStorage) { |
3 |
| - throw new Error(); |
4 |
| - } |
5 |
| - |
6 |
| - localStorage.setItem('storage_test', 1); |
7 |
| - localStorage.removeItem('storage_test'); |
8 |
| -} catch (e) { |
9 |
| - (function () { |
10 |
| - 'use strict'; |
11 |
| - |
| 1 | +(function (root, doc) { |
| 2 | + 'use strict'; |
| 3 | + try { |
| 4 | + if (!root.localStorage || !root.sessionStorage) { |
| 5 | + throw new Error(); |
| 6 | + } |
| 7 | + |
| 8 | + localStorage.setItem('storage_test', 1); |
| 9 | + localStorage.removeItem('storage_test'); |
| 10 | + } catch (e) { |
12 | 11 | /**
|
13 | 12 | * Returns a storage object to shim local or sessionStorage
|
14 | 13 | * @param {String} type - either 'local' or 'session'
|
|
32 | 31 | } else {
|
33 | 32 | expires = '';
|
34 | 33 | }
|
35 |
| - document.cookie = name + '=' + value + expires + '; path=/'; |
| 34 | + doc.cookie = name + '=' + value + expires + '; path=/'; |
36 | 35 | }
|
37 | 36 |
|
38 | 37 | /**
|
|
41 | 40 | */
|
42 | 41 | function readCookie(name) {
|
43 | 42 | var nameEQ = name + '=',
|
44 |
| - ca = document.cookie.split(';'), |
| 43 | + ca = doc.cookie.split(';'), |
45 | 44 | i = 0,
|
46 | 45 | c;
|
47 | 46 |
|
@@ -70,11 +69,11 @@ try {
|
70 | 69 | return 'localstorage';
|
71 | 70 | }
|
72 | 71 |
|
73 |
| - if (!window.name) { |
74 |
| - window.name = new Date().getTime(); |
| 72 | + if (!root.name) { |
| 73 | + root.name = new Date().getTime(); |
75 | 74 | }
|
76 | 75 |
|
77 |
| - return 'sessionStorage' + window.name; |
| 76 | + return 'sessionStorage' + root.name; |
78 | 77 | }
|
79 | 78 |
|
80 | 79 | /**
|
@@ -170,7 +169,7 @@ try {
|
170 | 169 | };
|
171 | 170 | };
|
172 | 171 |
|
173 |
| - window.localStorage.prototype = window.localStorage = new Storage('local'); |
174 |
| - window.sessionStorage.prototype = window.sessionStorage = new Storage('session'); |
175 |
| - })(); |
176 |
| -} |
| 172 | + root.localStorage.prototype = root.localStorage = new Storage('local'); |
| 173 | + root.sessionStorage.prototype = root.sessionStorage = new Storage('session'); |
| 174 | + } |
| 175 | +})(window, document); |
0 commit comments