意外关闭预防
我不小心关闭了Chrome浏览器
是的,很遗憾的是,开发者们没有选择内置提示来预防这种情况。你必须把一些已经写好的扩展程序中的一些用来处理这个问题,然后选择一个适合你的(很不幸,由于Chrome的设计,这些扩展程序需要保持额外的几个进程运行才能工作)。我不想在寻求帮助之前,现在就启动Chrome浏览器,不想冒任何风险。我担心如果我这样做,它们会永久丢失(覆盖的文件)。
很聪明。你说的没错,运行Chrome浏览器很可能很快就会把它们清除掉,因为它的设计是除了当前的工作副本外,只保留一组备份,所以当你启动一个新的实例时,它会把所有的东西都移回并覆盖之前的备份。
根据过去使用Firefox的经验,我知道恢复选项卡和浏览器会话是一件很棘手的事情。
在使用Chrome浏览器时也不是很愉快,但我将告诉你这个过程(我已经做了太多次了)。是否有一个文件或其他东西需要复制或重命名?
是的,在你的用户数据目录中,有以下四个文件。
Current Session
(包含当前会话中页面中的表单数据)
Current Tabs
(包含当前会话中的标签页的URL列表)
Last Session
(与Current Session
相同,但为上一个会话)
Last Tabs
(与Current Tabs
相同,但为上一个会话)
(注意,这里的 “会话 "一词意味着从头开始启动Chrome浏览器。也就是说,如果您在完全没有chrome.exe
的实例运行时打开Chrome浏览器(请检查任务管理器以确定),那么您就启动了一个会话。如果你关闭了一个窗口中的所有标签页,但有另一个Chrome窗口的标签页打开,那么该会话仍处于活动状态,所以重新启动Chrome不会是一个新的会话。同样,如果Chrome挂起,你关闭了所有窗口,但仍有一个chrome.exe
的副本在运行,那么在你杀死它之前,该会话仍处于活动状态)
将这四个文件复制到某个地方,这样你就可以在不丢失任何东西的情况下工作。
重新打开标签页
我知道Ctrl+T命令。但我通常在浏览时使用这个命令。在关闭Chrome浏览器之后,这个命令能不能用?
是的,在某种程度上是可以的,但是你的组合是错误的;它是Ctrl+⇧ Shift+T。如果你在关闭之前有多个标签页打开,那么它应该会重新打开所有的标签页。
(在旧版本中,由于某种原因,只有当你首先创建一个新的标签页时,它才会工作。我在我的XP系统上仍然使用Chromium 11,但总是被这种奇怪的行为所困扰。每当我不小心关闭了Chrome浏览器,需要恢复我的标签页时,我首先要先打开一个标签页(按Ctrl+T新建标签页最简单),然后再按Ctrl+⇧ Shift+T来恢复之前的标签页。在较新的版本中(我不确定具体是什么时候的事,但对于现在的众多版本来说),不需要先打开一个标签页就可以了)
现在在你去运行Chrome浏览器之前,我必须提醒你,它并不总是能发挥作用。首先,它不会在启动Chrome浏览器后立即工作。你必须等待,直到Chrome读取用户文件并解析它们。这可能需要一些时间,你可以通过右键点击标签栏,观察到Reopen closed tab上下文菜单条目被打成灰色/停用一段时间就可以看到。如果你等待片刻,再重复几次,它应该会变成黑色(启用),然后你就可以使用它了。
然而,即使你等待一段时间,它也不会一直恢复到之前的会话。有的时候,Chrome浏览器干脆失去了之前的会话和标签页,重新打开标签功能就是无法使用。我一直没能弄清楚原因,也没能辨别出什么规律或原因,但似乎总是在你最需要的时候出现这种情况。我没有做过临床、实验性的测试,但似乎在启动后打开一个新的标签页是一个很好的方法,可以让Chrome浏览器清除掉你之前的会话(我猜它是认为你已经用完了,开始新的东西)。这样的话,如果Chrome浏览器心情不好,决定把它们清除掉,就不会丢失了。
复制文件,然后运行Chrome浏览器,等待片刻,再看看reopen-tab是否可用。
恢复模式
如果还是不行,可以尝试把Chrome浏览器放到恢复模式:
关闭Chrome浏览器
将备份的四个文件复制回用户数据目录下
在文本编辑器中打开 Local State
文件(它在用户数据的父文件夹中)
找到exited_cleanly
条目
5.将其改为false
6.保存并退出
7.运行
Chrome
现在它应该显示Chrome没有正确关闭通知栏。点击[Restore]
按钮,希望它能恢复你的会话。(即使你在点击该按钮之前已经打开了新的标签页,这应该也能正常工作。)
如果不能正常工作,请尝试将Last Tabs
和Last Session
复制到用户数据目录中,并将它们分别重命名为Current Tabs
和Current Session
。当然,即使这样做了,你也只能得到前一个会话,而不是崩溃的那个会话,但这可能已经足够了,这取决于你的情况。运行这个程序,把文件传给它,然后把它们保存到另一个文件中。大多数这样的程序都需要使用命令行,但估计也有GUI版本(虽然我现在似乎找不到)。例如,如果你把strings.exe
保存到c:\foobar
,然后把这四个文件也复制到那里,你可以这样提取标签页:
C:\foobar>strings "current tabs" > ctabs.txt
C:\foobar>strings "last tabs" > ltabs.txt
C:\foobar>strings "current session" > csess.txt
C:\foobar>strings "last session" > lsess.txt
(我加了额外的空格来对齐所有的东西,只是为了让大家更清楚地知道发生了什么。)
现在你可以打开新的*tabs.txt
文本文件,并看到之前打开的标签页的URL。请注意,你可能会看到很多重复的内容,以及一些已经关闭的标签页。
*sess.txt
文件中会包含其他信息,比如你在页面上输入的表格中的文字,所以如果你打开的页面上有一堆你输入的信息,你可以恢复这些信息,这样你就不用从头开始重新开始。(例如,如果我不小心关闭了这个页面,我可以恢复我此刻正在输入的这段文字,而不是试图重新做一遍。恐怖!恐怖! ๏)再次注意,你很可能会看到重复。最糟糕的是,如果你已经打了一段时间的东西,而它在你开始打字后已经改变了无数次(就像这里的这段文字),那么你可能会发现它有好几个副本,每一个副本都是不同点的快照。这可能会很乏味,要检查每个文件,看看哪一个是最新的版本,有最新的变化;但这还是比从头开始好。
未来的会话管理
为了避免将来出现这样的问题(也为了避免依赖Chrome浏览器正常工作),你可以安装一个会话管理扩展。有几个可以选择,但我推荐Session Buddy。它非常好用,用途广泛,而且Hans很乐意接受bug-报告和功能请求。(我想他最近甚至还增加了同步功能!) Session Buddy可以让你手动保存会话,但也可以自动保存会话,所以你可以轻松地从崩溃中恢复。