Javascript для «экспорта» всех куки? - PullRequest
2 голосов
/ 01 сентября 2011

Существует классное расширение Firefox , которое позволяет экспортировать все файлы cookie в файл cookie HTTP-файла Netscape, cookies.txt, который затем можно использовать с wget (et.al.)

Вот пример cookies.txt файла для сайта happycog.com:

# Netscape HTTP Cookie File
# http://www.netscape.com/newsref/std/cookie_spec.html
# This is a generated file!  Do not edit.

cognition.happycog.com  FALSE   /   FALSE   1345696044  exp_last_visit  998800044
cognition.happycog.com  FALSE   /   FALSE   1345696044  exp_last_activity   1314160044

Как я могу создать такой же стиль «экспорта файлов cookie» с Javascript?Разумеется, он сможет только читать куки для текущего домена.Это было бы прекрасно.

Дополнительные сведения:

Я понимаю, что файлы cookie не могут быть экспортированы в файловую систему с использованием чистого JavaScript.Я был бы счастлив, если бы они экспортировались в текстовую область или с document.write.Я просто хочу знать, как я могу получить их в том же формате, где я могу скопировать и вставить их в файл cookies.txt.Задача здесь состоит в том, чтобы сделать это с помощью JavaScript, а не использовать аддон.

Ответы [ 3 ]

2 голосов
/ 15 января 2016
var cookieData = document.cookie.split(';').map(function(c) {
  var i = c.indexOf('=');
  return [c.substring(0, i), c.substring(i + 1)];
});

copy(JSON.stringify(JSON.stringify(cookieData)));

Это экспортирует ваши куки в массив пар ключ / значение (например, [[key1, val1], [key2, val2], ...]), а затем скопирует их в буфер обмена.Он не будет сохранять информацию о дате истечения срока действия, поскольку его невозможно извлечь с помощью Javascript.


Чтобы импортировать файлы cookie назад, вы должны выполнить следующий код:

var cookieData = JSON.parse(/*Paste cookie data string from clipboard*/);
cookieData.forEach(function (arr) {
  document.cookie = arr[0] + '=' + arr[1];
});
2 голосов
/ 01 сентября 2011

Все файлы cookie для страницы хранятся в document.cookie

1 голос
/ 01 сентября 2011

Извините за задержку ответа - пришлось спать. Я только что играл с этим и пришел к выводу, что ответ NO .

Причина этого в том, что Javascript не имеет доступа к какой-либо другой информации, кроме имени и значения файла cookie, вы не можете получить путь, время истечения и т. Д. И т. Д. Что вы на самом деле хотите делать? Это для одного конкретного сайта, который вы разрабатываете, или для общего пользования при просмотре?

...