diff --git a/README.md b/README.md index 7306159..622c76a 100644 --- a/README.md +++ b/README.md @@ -221,14 +221,15 @@ simplemde.codemirror.on("change", function(){ }); ``` -## State methods -The following methods will let you check on the state of the editor. +## Useful methods +The following self-explanatory methods may be of use while developing with SimpleMDE. ```js var simplemde = new SimpleMDE(); -simplemde.isPreviewActive(); -simplemde.isSideBySideActive(); -simplemde.isFullscreenActive(); +simplemde.isPreviewActive(); // returns boolean +simplemde.isSideBySideActive(); // returns boolean +simplemde.isFullscreenActive(); // returns boolean +simplemde.clearAutosavedValue(); // no returned value ``` ## How it works diff --git a/src/js/simplemde.js b/src/js/simplemde.js index 3e04956..02f3b71 100644 --- a/src/js/simplemde.js +++ b/src/js/simplemde.js @@ -999,52 +999,67 @@ SimpleMDE.prototype.render = function(el) { }; SimpleMDE.prototype.autosave = function() { - var simplemde = this; + if(localStorage) { + var simplemde = this; - if(this.options.autosave.uniqueId == undefined || this.options.autosave.uniqueId == "") { - console.log("SimpleMDE: You must set a uniqueId to use the autosave feature"); - return; - } + if(this.options.autosave.uniqueId == undefined || this.options.autosave.uniqueId == "") { + console.log("SimpleMDE: You must set a uniqueId to use the autosave feature"); + return; + } - if(simplemde.element.form != null && simplemde.element.form != undefined) { - simplemde.element.form.addEventListener("submit", function() { - localStorage.setItem(simplemde.options.autosave.uniqueId, ""); - }); - } + if(simplemde.element.form != null && simplemde.element.form != undefined) { + simplemde.element.form.addEventListener("submit", function() { + localStorage.removeItem("smde_" + simplemde.options.autosave.uniqueId); + }); + } - if(this.options.autosave.loaded !== true) { - if(typeof localStorage.getItem(this.options.autosave.uniqueId) == "string" && localStorage.getItem(this.options.autosave.uniqueId) != "") - this.codemirror.setValue(localStorage.getItem(this.options.autosave.uniqueId)); + if(this.options.autosave.loaded !== true) { + if(typeof localStorage.getItem("smde_" + this.options.autosave.uniqueId) == "string" && localStorage.getItem("smde_" + this.options.autosave.uniqueId) != "") + this.codemirror.setValue(localStorage.getItem("smde_" + this.options.autosave.uniqueId)); - this.options.autosave.loaded = true; - } + this.options.autosave.loaded = true; + } - if(localStorage) { - localStorage.setItem(this.options.autosave.uniqueId, simplemde.value()); - } + localStorage.setItem("smde_" + this.options.autosave.uniqueId, simplemde.value()); + + var el = document.getElementById("autosaved"); + if(el != null && el != undefined && el != "") { + var d = new Date(); + var hh = d.getHours(); + var m = d.getMinutes(); + var dd = "am"; + var h = hh; + if(h >= 12) { + h = hh - 12; + dd = "pm"; + } + if(h == 0) { + h = 12; + } + m = m < 10 ? "0" + m : m; - var el = document.getElementById("autosaved"); - if(el != null && el != undefined && el != "") { - var d = new Date(); - var hh = d.getHours(); - var m = d.getMinutes(); - var dd = "am"; - var h = hh; - if(h >= 12) { - h = hh - 12; - dd = "pm"; - } - if(h == 0) { - h = 12; + el.innerHTML = "Autosaved: " + h + ":" + m + " " + dd; } - m = m < 10 ? "0" + m : m; - el.innerHTML = "Autosaved: " + h + ":" + m + " " + dd; + setTimeout(function() { + simplemde.autosave(); + }, this.options.autosave.delay || 10000); + } else { + console.log("SimpleMDE: localStorage not available, cannot autosave"); } +}; - setTimeout(function() { - simplemde.autosave(); - }, this.options.autosave.delay || 10000); +SimpleMDE.prototype.clearAutosavedValue = function() { + if(localStorage) { + if(this.options.autosave.uniqueId == undefined || this.options.autosave.uniqueId == "") { + console.log("SimpleMDE: You must set a uniqueId to use the autosave feature"); + return; + } + + localStorage.removeItem("smde_" + this.options.autosave.uniqueId); + } else { + console.log("SimpleMDE: localStorage not available, cannot autosave"); + } }; SimpleMDE.prototype.createSideBySide = function() {