:: StoryTitle Saving Games in Snowman :: UserScript[script] window.storage = { ok: function() { try { var storage = window["localStorage"], x = '__storage_test__'; storage.setItem(x, x); storage.removeItem(x); return true; } catch(e) { return e instanceof DOMException && ( // 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.length !== 0; } }, save: function(hash) { window.localStorage.setItem('hash', hash); }, restore: function() { return window.localStorage.getItem('hash'); }, delete: function() { window.localStorage.removeItem("hash"); } } :: Start <% if(window.storage.ok()) { %> Window storage works! <% } %> <% if(window.storage.restore()) { %> There is a session saved! <% } %> [[Save the session hash?]] [[Restore from previous session?]] [[Delete previous session?]] :: Save the session hash? The hash is <%= window.story.saveHash() %>. It has been saved! <% if(window.storage.ok()) { window.storage.save(window.story.saveHash()) }%> [[Go back?|Start]] :: Restore from previous session? <% if(window.storage.ok()) { if(window.story.restore(window.storage.restore()) ) { %> The restore was successful! <% } } %> [[Go back?|Start]] :: Delete previous session? <% window.storage.delete() %> [[Go back?|Start]]