Skip to content

Instantly share code, notes, and snippets.

@altair21
Last active October 13, 2016 03:12
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 altair21/b5fc9dd99de2721464cc7e0316ffd83e to your computer and use it in GitHub Desktop.
Save altair21/b5fc9dd99de2721464cc7e0316ffd83e to your computer and use it in GitHub Desktop.
// Removed IE support in this demo for the sake of simplicity
(function() {
if (!sessionStorage.length) {
// Ask other tabs for session storage
localStorage.setItem('getSessionStorage', Date.now());
};
// Core
window.addEventListener('storage', function(event) {
if (event.key == 'getSessionStorage') {
// Some tab asked for the sessionStorage -> send it
localStorage.setItem('sessionStorage', JSON.stringify(sessionStorage));
localStorage.removeItem('sessionStorage');
} else if (event.key == 'sessionStorage' && !sessionStorage.length) {
// sessionStorage is empty -> fill it
var data = JSON.parse(event.newValue),
value;
for (key in data) {
sessionStorage.setItem(key, data[key]);
}
}
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment