Ответы:
Я бы порекомендовал вам установить Lazarus - он сохранил мой приклад достаточно много раз.
Уф! Я нашел решение - мне удалось нажать кнопку «назад» и «вперед» с расширением « Live HTTP Headers », фиксирующим входящий / исходящий трафик, и информация о форме была частью ответа POST. (Firefox повторно отправит данные формы, не зная, где они хранятся, но не имеет очевидного встроенного способа отображения их пользователям)
Мой метод был протестирован в экстренном случае (потерян комментарий в Facebook). Для этого нужен сторонний инструмент - ProcessHacker . Это только для Windows - для метода Linux, проверьте этот вопрос . Он должен работать с любым браузером, а не только с Firefox .
Есть два способа. Во-первых, удобнее для пользователя , но если компьютер зависнет, вы потеряете данные. Второй более надежный , но нуждается в дополнительном инструменте. Со вторым вы получите файл, который вы можете передать какому-нибудь эксперту, если этот урок будет слишком сложным. Вы можете выполнить Путь II, шаги 1 и 2, чтобы быть в безопасности, а затем Путь I, чтобы сделать это проще. Я использовал Путь I.
Вот точный список шагов, которые я предпринял:
Первое, что нужно сделать, это приостановить процесс. Это очень важно для успеха . Я открыл ProcessHacker (PH), нашел firefox.exe в списке (вы можете щелкнуть по столбцу «Имя», чтобы избавиться от древовидного представления и получить представление списка), и из контекстного меню я использовал «Приостановить». Тогда это выглядит так, как будто Firefox заморожен, поэтому, если Windows попросит вас прекратить не отвечающий процесс, не делайте этого! Он жив, просто спит.
Дважды щелкните строку firefox.exe или выберите «Свойства» в контекстном меню firefox.exe.
Перейдите на вкладку «Память» и нажмите кнопку «Струны ...» в правом верхнем углу.
Я использовал настройки по умолчанию (флажок [✓] установлен, флажок [] не установлен) - Мин. лен .: 10; [✓] Определить Unicode; Поиск в [✓] Личное / [] Изображение / [] Сопоставлено. Нажмите на кнопку «ОК».
Через некоторое время (до минуты, но, вероятно, через несколько секунд) вы найдете все найденные строки. С такими настройками у меня сейчас более 700к строк. Проверьте каждый, кто ищет потерянный текст . Просто шучу! Перейти к следующему пункту :)
Нажмите внизу слева «Фильтр» и выберите пункт меню, который подходит вам лучше всего. Я использовал «Содержит (без учета регистра)».
Введите слово, которое было в вашем потерянном тексте. Слово, потому что некоторые строки могут быть сохранены, например, как " foo bar
". Чем длиннее и уникальнее слово, тем меньше результатов вы получите (так будет проще). Если вы не получили результатов, попробуйте другое слово. У меня был свой комментарий в двух частях памяти - в одной это было полно, в другой только вторая половина.
Посмотри результаты. Большинство строк будут видны с нулевым символом после каждого символа, например, foobar
будет f.o.o.b.a.r
(hex 66 00 6F 00 6F 00 62 00 61 00 72
). Не беспокойся об этом; это вещь Unicode. Если вы найдете свой текст, нажмите кнопку «Сохранить ...». Мой комментарий смотрел как часть HTML, то есть, это было <div>
и <span>
теги вокруг.
Откройте сохраненный файл в редакторе, который поддерживает Unicode. Я не знаю о встроенном блокноте, но он должен работать. Я использовал Notepad ++.
Найдите текст, скопируйте нужную часть. Скажи "ура". Теперь вы можете щелкнуть правой кнопкой мыши строку firefox.exe в главном окне и выбрать «Продолжить».
Современные версии Firefox имеют инструменты разработчика, которые можно использовать для этого. Нажмите Ctrl+ Shift+, Qчтобы вызвать инструмент «Сеть», нажмите, F5чтобы перезагрузить страницу (подтвердите предупреждение о том, что контент будет отправлен повторно, мы хотим, чтобы именно это произошло), и выберите (возможно) самую верхнюю строку в инструменте «Сеть». Это должно показать POST
как метод.
На правой стороне появляется набор вкладок. Тот, который нас интересует, «Заголовки», уже должен быть открыт. Нажмите, Edit and Resend
чтобы получить полное содержание запроса. Поле «Тело запроса» содержит полные данные запроса в кодированной форме. Запустите его через декодер, как этот, чтобы вернуть ваши данные.
Другим возможным решением для восстановления ваших данных является создание дампа ядра Firefox (при условии, что вы используете его в Linux или аналогичной системе). Смотрите этот ответ для более подробной информации: /superuser//a/236400/180675
Я нашел новое дополнение, которое можно использовать для восстановления потерянных постданных: Контроль истории форм
Автор утверждает:
Этот плагин также сохраняет текст из полей редактора по мере ввода текста, поэтому вам никогда не придется терять свою работу при возникновении катастрофы. Восстановите свою потерянную работу после истечения времени ожидания сеанса, сбоев в сети, сбоях в работе браузера, сбоях питания и всех других вещей, которые разрушат тяжелую работу, которую вы только что посвятили написанию важной электронной почты, эссе или поста в блоге.
РЕДАКТИРОВАТЬ: О, это действительно сохранил этот пост. :)
Я боюсь, что содержимое формы не кэшируется ... Обычные поля ввода (одна строка) могут быть сохранены с автоматическим заполнением , а текстовые области (несколько строк, которые вы, вероятно, набрали), нет.
Веб-браузер определенно содержит данные формы в памяти. Сложность заключается в следующем: как получить эти данные?
Вот моя идея Я не пробовал это. На бумаге это работает. Этот ответ относится к Firefox и другим веб-браузерам.
Короче говоря: перезагрузите страницу, изучая заголовки.
127.0.0.1
. Это можно сделать с помощью hosts
файла.*** Исправление: хотя приведенное ниже работает в Firefox и Chrome, снимок в Firefox создает (gzip'd) двоичный файл. Так что пока этот подход работает только в Chrome :(
Для обоих Firefox и Chrome, я думаю , гораздо более простой способ по сравнению с фактическим дампом системного процесса заключается в использовании инструментов разработчика.
Перейдите на вкладку «Память» (в Chrome она называлась «Профили»), затем сделайте снимок и сохраните его в файл (это просто текст). Затем найдите в файле какое-нибудь слово, которое, как вы знаете, написали в форме - это, вероятно, самый быстрый способ найти весь контент.
Я только что протестировал его на Chrome на странице, где динамическая форма (JavaScript) испортилась сама собой и потеряла весь написанный текст. Это было все еще в памяти, и я мог восстановить это, даже если я еще не представил это!
См. Https://developer.mozilla.org/en-US/docs/Tools/Memory и https://developers.google.com/web/tools/chrome-devtools/memory-problems/heap-snapshots для получения дополнительной информации.
gzip
, поэтому простое zcat xxx.fxsnapshot
позволяет получить содержимое.
gunzip -c
(эквивалентно zcat на Mac) возвращает в основном вопросительные знаки ... Я запускал strings
его и мог получить некоторую информацию, но я не знаю, можно ли таким способом восстановить полное содержимое формы.