浏览器数据找回

网站上分享的文章应该都是个人的心血,对于一些操作问题导致心血丢失真的很奔溃,终于找到一个弥补的办法,csdn的文章谷歌浏览器亲测有效,理论上其他浏览器的其他网站应该也可以,适用以下场景

  • 把博客编辑当成了编写新博客,覆盖掉了老博客,无法返回
  • 浏览器不崩溃,返回编写界面,编写内容全没了
  • 编写新博客A中,关闭页面,然后打开新的编写新博客B页面,覆盖掉了已编写的A内容
  • 等等各种情况数据丢失情况

以谷歌和csdn为例子

  1. 打开一个新的发布文章页面或者旧文章编辑页面也行。总之当前界面必须处于文章编辑界面,因为浏览器只有触发编辑时才会记录到浏览器缓存数据库,每个界面对应的缓存数据库不一样。
    在这里插入图片描述

  2. 打开开发者工具,然后切换到Application中(safari中是切换到存储空间),主要用到Strorage中的IndexedDB。在IndexedDB中可以找到你丢失的博客内容,找到你需要找回的那条数据,记住key值。
    在这里插入图片描述
    注意看text里的内容,有些是浏览版,有些是Markdown编辑版,最好找Markdown版本,可以直接复制重新发布博客。

  3. 复制下列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值
    在这里插入图片描述
    注意:如果浏览器拦截下载,将失败。

相关推荐

  1. Edge浏览器开启/关闭侧栏和找回Copilot&Bing按钮

    2024-04-22 10:18:02       97 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 10:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 10:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 10:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 10:18:02       20 阅读

热门阅读

  1. c# 反射的应用

    2024-04-22 10:18:02       14 阅读
  2. elasticsearch 关于向量化检索

    2024-04-22 10:18:02       13 阅读
  3. 4.21算法

    2024-04-22 10:18:02       14 阅读
  4. Leetcode 4.21

    2024-04-22 10:18:02       11 阅读
  5. 算法之前缀和和差分

    2024-04-22 10:18:02       11 阅读
  6. 广州大学2023-2024学年第一学期《计算机网络》A卷

    2024-04-22 10:18:02       16 阅读
  7. SWCTF

    SWCTF

    2024-04-22 10:18:02      17 阅读