网站上分享的文章应该都是个人的心血,对于一些操作问题导致心血丢失真的很奔溃,终于找到一个弥补的办法,csdn的文章谷歌浏览器亲测有效,理论上其他浏览器的其他网站应该也可以,适用以下场景
- 把博客编辑当成了编写新博客,覆盖掉了老博客,无法返回
- 浏览器不崩溃,返回编写界面,编写内容全没了
- 编写新博客A中,关闭页面,然后打开新的编写新博客B页面,覆盖掉了已编写的A内容
- 等等各种情况数据丢失情况
以谷歌和csdn为例子
-
打开一个新的发布文章页面或者旧文章编辑页面也行。总之当前界面必须处于文章编辑界面,因为浏览器只有触发编辑时才会记录到浏览器缓存数据库,每个界面对应的缓存数据库不一样。
-
打开开发者工具,然后切换到Application中(safari中是切换到存储空间),主要用到Strorage中的IndexedDB。在IndexedDB中可以找到你丢失的博客内容,找到你需要找回的那条数据,记住key值。
注意看text里的内容,有些是浏览版,有些是Markdown编辑版,最好找Markdown版本,可以直接复制重新发布博客。 -
复制下列JS代码,依据你IndexedDB,修改idb配置
var idb={name:'stackedit-db',//数据库名version:1,//版本号store:'objects',//仓库名db:null } function open(){var r=indexedDB.open(idb.name,idb.version)r.onsuccess = function (event) {idb.db = r.result;console.log('数据库打开成功');}; } function read(key) {var store=idb.store;var transaction = idb.db.transaction([store],'readonly');var objectStore = transaction.objectStore(store);var request = objectStore.get(key);request.onerror = function(event) {console.log('事务失败');};request.onsuccess = function( event) {if (request.result) {var str=request.result.text;console.log(str.replace(/^\s+|\s+$/g,"").substr(-18)); download('indexedDb_'+str.replace(/^\s+|\s+$/g,"").substr(-18)+'.txt',request.result.text);} else {console.log('未获得数据记录');}}; } function download(filename, text) {var pom = document.createElement('a');pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));pom.setAttribute('download', filename);if (document.createEvent) {var event = document.createEvent('MouseEvents');event.initEvent('click', true, true);pom.dispatchEvent(event);} else {pom.click();} }
再把代码放到浏览器的控制台(console)。最后依次执行
open();
read(key);//key 为step2中你找到的key值
注意:如果浏览器拦截下载,将失败。