如何在Firefox中恢复网页的表单信息


23

我在网页上填写了一个冗长的表单,由于服务器错误而拒绝了我提交的内容。我似乎无法恢复表单输入。

在Firefox中是否有任何方法可以查看缓存,历史记录等以恢复此信息?

Answers:


5

我建议你安装 拉扎勒斯 - 它已经保存了我的屁股足够多次。


3
拉撒路很有希望。可惜, 拉扎勒斯 死了(!)。拉撒路不起作用。网站上的联系表格已被删除。开发人员没有回应。
Nicolas Barbulesco

拉撒路也不知何故与萤火虫发生冲突。
Tomáš Zato

当然,它已经“死了”,开发者似乎是MIA,但它仍然适用于我。
Animadversor

@Animadversor由于不兼容性(Firefox启动时报告),它在Firefox v53中不再起作用。
David Balažic

1
像Lazarus这样的“形式保护”工具必须在丢失数据之前安装,而不是在之后安装。 OP正在询问恢复丢失的数据。
user598527

6

呼!我想出了一个解决方案 - 我能够点击“后退”和“前进”按钮 实时HTTP标头 “扩展捕获传入/传出流量,表单信息是POST响应的一部分。(Firefox将重新发送表单输入,不确定存储位置,但没有任何明显的内置方式将其显示给用户)


2
我认为它存储在RAM中,因为您可以点击“返回”返回填写数据的表单,但是我从未听说过Firefox在关闭并重新启动浏览器后恢复这些表单值。
David Z

你可能想要Lazarus [ addons.mozilla.org/en-US/firefox/addon/6984 ]安装,如果这样的事情再次发生。
Sathyajith Bhat

@Sathya:考虑发布一个单独的答案,我会投票。
Jason S

1
也许三年前这不是真的,但Firefox的内置Web开发人员工具目前有一些工具可以让你以类似的方式提取信息。刚回答 这里
sh1

1
我有另一个想法。重新加载页面,检查标题...我将发布它作为答案。
Nicolas Barbulesco

4

我的方法在紧急情况下进行了测试(Facebook评论丢失)。它需要第三方工具 - ProcessHacker 。它仅适用于Windows - 对于Linux方法,请检查 那个问题 它应该适用于所有浏览器,而不仅仅是Firefox

有两种方法。 首先是用户友好 ,但如果PC崩溃,你就会丢失数据。 其次是更安全的故障 ,但需要一个额外的工具。如果那个教程太难了,你可以得到一个你可以给一些专家的文件。你可以做Way II,第1步和第2步是安全的,然后我可以更方便。我用过Way I.

这是我采取的确切步骤列表:

我一路走来

  1. 首先要做的是 暂停 这个过程。 这对成功至关重要 。我打开了ProcessHacker(PH),在列表中找到了firefox.exe(你可以点击“Name”列去除树视图并获取列表视图)并从上下文菜单中我使用“Suspend”。然后它看起来像Firefox被冻结,所以如果Windows会问你终止没有响应过程,不要这样做!它还活着,只是在睡觉。

  2. 双击firefox.exe行或从firefox.exe的上下文菜单中选择“属性”。

  3. 转到“Memory”选项卡,然后单击右上角的“Strings ...”按钮。

  4. 我使用默认设置(选中[& check;]复选框,[]未选中) - 分钟。 len。:10; [& check;]检测Unicode;搜索[✓]私人/ []图像/ []映射。单击“确定”按钮。

  5. 过了一会儿(最多一分钟,但可能是几秒钟)你会找到所有的字符串。有了这样的设置,我现在有超过700k的字符串。 检查每一个搜索丢失的文本 。开玩笑!转到下一点:)

  6. 单击左下角的“过滤器”,然后选择最适合您的菜单项。我使用“包含(不区分大小写)”。

  7. 输入丢失文本中的一些单词。 因为某些字符串可以保存,例如“ foo bar “。更长,更独特的单词,你得到的结果越少(所以它会更容易)。如果你没有得到结果,试试另一个词。我在记忆的两个部分有我的评论 - 在一个很满意,在另一半刚刚下半场。

  8. 仔细查看结果。在每个字符之后,大多数字符串都将以空字符显示,例如, foobar 将会 f.o.o.b.a.r (十六进制 66 00 6F 00 6F 00 62 00 61 00 72 )。别担心;这是Unicode的事情。如果您找到了文本,请单击“保存...”按钮。我的评论看起来像HTML的一部分,即它有 <div><span> 周围的标签。

  9. 在支持Unicode的编辑器中打开保存的文件。我不知道内置记事本,但它应该工作。我用过Notepad ++。

  10. 找到文本,复制所需的部分。说“万岁”。您现在可以从主窗口右键单击firefox.exe行,然后选择“恢复”。

方式二

  1. 从方式I重复步骤1。
  2. 找到firefox.exe行,右键单击它并从上下文菜单中选择“Create dump file ...”。
  3. 使用一些支持加载大文件的编辑器。 Notepad ++应该处理它,但你需要关闭语法着色和拼写检查。例子: HXD (免费软件,IMO更好), wxHexEditor (FLOSS)。
  4. 从第一路转到第10步。

聪明的方法!今天没有为我工作(从来没有在Gitlab在线工具上进行长时间的编辑......)但我会将技术(以及漂亮的ProcessHacker工具)保留在枕头下。
Tibo

您可以从任务管理器创建转储文件,请参阅 这个答案 。所以不需要像ProcessHacker这样的第三方工具。
David Balažic

谢谢,大卫。我仍然认为应该尽快暂停流程并回答你链接没有说什么。如果出现错误,暂停会有很大帮助。 PH中还有字符串搜索功能。由于字符通常用00h(null)填充,你仍然需要一些编辑器来查找文本(记事本不会这样做),所以不完全“没有第三方”。与此同时,我丢失了YouTube和Disqus评论(即沉重的JavaScripted和动态页面) - 它再次起作用,但它不是100%确定的方法,正如Tibo所示。
Krzysiu

如果有几个chrome进程在运行,有没有办法知道我们应该使用哪一个?
JinSnow

@JinSnow unix.stackexchange.com/a/209699/167757 - 也许这会有所帮助。在某些情况下,检查过程的开始时间也可能有所帮助。
Krzysiu


2

我发现了一个新的插件,可以用来恢复丢失的postdata: 表格历史控制

作者声称:

此插件还会在您键入时存储编辑器字段中的文本,因此您也可以   灾难发生时,永远不必放松你的工作。恢复你的遗失   会话超时,网络故障,浏览器崩溃,电源后工作   失败和所有其他会破坏你刚才努力的事情   写下重要的电子邮件,论文或博客文章。

编辑:哦,它确实保存了这篇文章。 :)


这个扩展是一个(非常)好主意。但它太复杂了。这个扩展自豪地说它“自动保存以任何形式输入的文本”。它是否保存“满足”用户输入的数据?例如,Disqus评论和维基百科所见即所得的编辑。
Nicolas Barbulesco

@NicolasBarbulesco我不知道,尝试一下,然后告诉开发人员它是否不起作用。我想它只适用于输入和textarea字段,并形成postdata。我下载它的主要原因是因为许多愚蠢的论坛只是在你写一篇帖子太长时间之后就把你注销了,吃了你的整篇文章......
Calmarius

2

现代版本的Firefox具有可用于此的开发人员工具。按 按Ctrl + 转移 + Q 打开网络工具,按 F5 重新加载页面(确认将重新提交内容的警告,我们希望确实发生这种情况)并选择网络工具中的(可能)最顶行。应该表明 POST 作为方法。

在右侧,出现一组选项卡。我们感兴趣的那个,“标题”应该已经开放了。点击 Edit and Resend 获取完整的请求内容。 Request Body字段包含url编码形式的完整请求数据。通过类似的解码器运行它 这个 获取您的数据。


1
正是这样。注意:有些网站对内容的编码方式不同,在我的情况下,它用+和换行符替换空格\ r \ n。
user31389

1

我担心表单内容不会被缓存...可以保存常规输入字段(单行) 自动填充 但是文本区域(多行,您可能输入的那些)不是。


1

Web浏览器肯定 具有 内存中的表单数据。困难是: 如何检索这些数据?

这是我的想法。我没试过。 在纸上 , 有用。这个答案适用于Firefox和其他Web浏览器。

简而言之 : 在检查标题时重新加载页面。

  1. 建立机器。 我们需要一台机器来检查从Web浏览器发送的HTTP流量。
    • 最好的选择是 扩展名 的LiveHTTPHeaders 对于Firefox。但我认为安装此扩展需要重启Firefox。当然不要重启Firefox!能够在不重新启动Firefox的情况下安装此机器将会很棒。否则,您只需要事先安装此扩展程序。如果需要, 只需使用时间机器 。 ;-)
    • 如果您无法在Web浏览器中准备好机器,还有另一种选择。此选项更重。但它的强大之处在于它适用于所有Web浏览器,而无需重新启动它们。在您的计算机上安装一个简单的Web服务器,或设置一个代理服务器(如Squid)。确保您的服务器使用完整标头记录入站流量。并在操作系统中放置一条规则,用于将所有出站请求重定向到 127.0.0.1。这可以用a来完成 hosts 文件。
  2. 测试机器。 在Web浏览器中创建一个新窗口。 在维基百科上写一些文字,然后点击 预习 然后验证您的机器中是否有您的书面文字。如果您的机器是服务器选项,则必须关闭重定向规则以加载Wikipedia表单,然后再打开它。
  3. 要重新加载页面,请右键单击表单所在的位置,然后选择 刷新 这个很重要。在某些网络邮件中,这将仅重新加载表单所在的框架。在这里,我们希望尽可能少地重新加载。如果单击按钮 刷新 在地址栏或按钮栏中,或者如果您按Apple R,您可能会重新加载整个页面,而在某些网络邮件中,这会让您自己陷入困境。
  4. 通常,Web浏览器会询问您: 您想再次发送表单数据吗? 如果你有这个问题,这是个好兆头。 选择 重新发送
  5. 检查发送的POST数据 ,在步骤1中设置机器。 在这里,您将找到您想要的数据。
  6. 来告诉我们这个解决方案有效!

这需要更新,现在使用开发人员工具而不是安装扩展。
user31389

1

***更正:虽然以下内容适用于Firefox和Chrome,但Firefox中的快照会生成(gzip)二进制文件。所以目前这种方法仅适用于Chrome:  (

对于 我认为与系统进程的实际核心转储相比,Firefox和Chrome更容易使用开发人员工具。

去吧 内存选项卡 (以前在Chrome中命名为“个人资料”),然后拿一个 快照 并将其保存到文件(它只是文本)。然后在文件中搜索您知道自己在表单中写过的单词 - 这可能是查找整个内容的最快方法。

Screenshot of Firefox Developer Tools – Memory tab

我刚刚在Chrome页面上测试了它,其中动态表单(JavaScript)自行搞砸并丢失了我写的所有文本。它仍然在记忆中,即使我还没有提交它,我也可以恢复它!

看到 https://developer.mozilla.org/en-US/docs/Tools/Memory https://developers.google.com/web/tools/chrome-devtools/memory-problems/heap-snapshots 更多细节。


在Firefox中,该文件只是用 gzip,这么简单 zcat xxx.fxsnapshot 允许您获取内容。
vaab

1
谢谢@vaab它确实是gzip,但在解压缩之后它仍然是一个二进制文件。 gunzip -c (相当于Mac上的zcat)主要返回问号...我跑了 strings 我可以获得一些信息,但我不知道是否可以通过这种方式恢复完整的表单内容。
Kamal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.