指路→大佬文章地址
前提:写了一下午的笔记忘记发布了,直接点了关闭浏览器。
第一步
1、点击csdn发布文章页面,空白页面即可
2、点击右键-点击检查-点击Application,然后展开indexdDB,选择objects
这里就能找到写文章的一些缓存记录了,但是由于我的文章过长,也没有时间记录,我就笨办法一个一个去试,找到有标题和文本的记录,把key的值记录下来一个一个试
就像这种
第二步
切换至Console,我是没有在控制台输入过的,刚开始直接粘贴发现粘贴不上去,根据上面的提示发现要我手动输入一个允许粘贴的英文,然后回车就可以输入了
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();
}
}
这里就可以复制粘贴这串代码到控制台了,但是要核对以下idb的配置
这几个对应的分别就是name、仓库、版本,一致就不需要更改了,直接粘贴上去回车执行就可以了。
然后再执行以下命令
open()
这里就连接数据库成功了,然后再执行下一个命令
read('key');//这里的key就要更改成你找到的key值
这里再去点击浏览器右上角的下载,就会发现已经下载文件下来了,这时候再去看是不是未保存的内容,如果不是再执行一遍这个操作。(这里要注意的是,需要把浏览器全部关闭,然后再重新打开,重新从第一步开始执行,不然执行命令后是不会下载文件的,我是碰到了这个问题,不知道其他人有没有)