网站上分享的文章应该都是个人的心血,对于一些操作问题导致心血丢失真的很奔溃,终于找到一个弥补的办法,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值
注意:如果浏览器拦截下载,将失败。