浏览器数据找回

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/638076.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3+TS版本Uniapp:项目前置操作

作者:前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 环境:使用vscode进行开发 如果一开始是使用的HbuilderX,请看hbuilderX创建的uniapp项目转移到vscode 为什么选择vscode?有更好…

温湿度LCD显示并上传服务器

项目需求 通过温湿度传感器将值传到LCD1602,并实时通过蓝牙透传到手机。 硬件介绍 温湿度传感器 DHT11温湿度传感器 DHT11_温湿度传感器数据格式-CSDN博客 LCD1602LCD1602-CSDN博客 HC-01 继电器模块 硬件接线 LCD1602 D0~D7 --> A0~A7VDD, A --> 5v…

(避雷指引:管理页面超时问题)windows下载安装RabbitMQ

一、背景: 学习RabbitMQ过程中,由于个人电脑性能问题,直接装在windows去使用RabbitMQ,根据各大网友教程,去下载安装完之后,使用web端进行简单的入门操作时,总是一直提示超时,要么容…

大sql mysql执行

先把sql 拆分 太大的执行失败 使用 SQLDumpSplitter3 拆分sql 执行拆分的sql 拆分的sql 打开发现很多 ; 开头的空行 替换掉 正则 ^; 修改数据库 my.cnf my,ini 执行可能会提示 [ERR] 2006 - Server has gone away 错误 在 [mysqld] 添加以下几行 wait_timeout2880000 inter…

WordPress SQLite Docker 镜像封装细节

为了让大家用的放心,同时解答 GitHub 社区中的疑问。这篇文章聊聊上一篇文章的 Docker 容器封装细节。 写在前面 在前一篇文章《WordPress 告别 MySQL:Docker SQLite WordPress》中,如果你跟着文章实践,大概三分钟就能够启动一个…

python 文件 成绩分析2

‘’’ 文件score.txt中存储了学生的考试信息,内容如下 小明,98,96 小刚,90,94 小红,90,94 小王,98,96 小刘,80,90 小赵,90,96 第二列是数学成绩,第三列是语文成绩 请写程序分析: 哪些同学语文成绩是相同的?哪些同学数学成绩是相同的?哪些同学语文和数…

HarmonyOS开发环境搭建 移动开发 鸿蒙开发 ArkTS

📜目录 💡 环境搭建 🚀安装nodejs 🤵安装ohpm 🍔安装SDK 💥Emulator安装 🌶️新建ArkTs项目 🏆️ArkTS语言 ✨️基本语法 🎈 声明式UI描述 🍱组件 …

如何在 PyCharm 中集成 GitLab?

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…

初识C++·类和对象(中)(3)

前言,最难的已经结束了,来点轻松了放松一下。 目录 1 流重载 2 const成员 3 取地址及const取地址操作符重载 1 流重载 C语言中printf和scanf是有局限性,只能直接打印内置类型,对于自定义类型就哦豁了,所以在C中就…

基础SQL DDL语句

MySQL的DDL(Data Definition Language)语句用于定义或修改数据库结构。 DDL数据库操作 查看所有的数据库 show databases; 红色圈起来的是系统数据库,是系统自带的 mysql:包含存储MySQL服务器运行时所需信息的表。这包括数据字典…

【Linux】小知识点温习---命令

许多常见命令会用,但是很少注意他们的区别;亦或在学习中使用较少,容易忘记,今天做一个回顾。 ls系列 -a:显示所有文件(包括隐藏文件) -l:将文件以竖列形式显示 -i:显示文件的inode编号 pwd 显…

Redis数据类型——String

Redis官网指令文档:Commands | Docs 前言 此处的String类型是针对Redis的Value的,因为Key的形式都是String,而Value则有哈性、列表、集合等形式。 众所周知,由于不同编码,经常会出现乱码的问题,但在Redi…