Javascript“导出”所有cookie?

cwd*_*cwd 3 javascript cookies export wget

有一个很酷的Firefox 扩展,它允许您将所有 cookie 导出到 Netscape HTTP Cookies 文件,cookies.txt然后您可以将其与wget(et.al.)

这是cookies.txthappycog.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
Run Code Online (Sandbox Code Playgroud)

如何使用 Javascript 构建相同样式的“cookies 导出”?当然,它只能读取当前域的 cookie。那就好了。

额外细节:

我意识到无法使用纯 javascript 将 cookie 导出到文件系统。我很高兴将它们导出到 textarea 或 document.write。我只想知道如何以相同的格式获取它们,我基本上可以将它们复制并粘贴到 cookies.txt 文件中。不过,这里的挑战是使用 javascript 来完成,而不是使用插件。

Jer*_*ier 5

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)));
Run Code Online (Sandbox Code Playgroud)

这会将您的 cookie 导出为键/值对数组(例如 [ [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];
});
Run Code Online (Sandbox Code Playgroud)


Dav*_*dom 3

抱歉回复延迟了 - 必须睡觉了。我刚刚玩过这个,得出的结论是答案是否定的

原因是 Javascript 无法访问除 cookie 名称和值之外的任何信息,您无法检索路径、到期时间等。您实际上想做什么?这是针对您正在开发的某个特定网站还是仅用于浏览时的一般用途?