cwd*_*cwd 3 javascript cookies export wget
有一个很酷的Firefox 扩展,它允许您将所有 cookie 导出到 Netscape HTTP Cookies 文件,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
Run Code Online (Sandbox Code Playgroud)
如何使用 Javascript 构建相同样式的“cookies 导出”?当然,它只能读取当前域的 cookie。那就好了。
额外细节:
我意识到无法使用纯 javascript 将 cookie 导出到文件系统。我很高兴将它们导出到 textarea 或 document.write。我只想知道如何以相同的格式获取它们,我基本上可以将它们复制并粘贴到 cookies.txt 文件中。不过,这里的挑战是使用 javascript 来完成,而不是使用插件。
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)
抱歉回复延迟了 - 必须睡觉了。我刚刚玩过这个,得出的结论是答案是否定的。
原因是 Javascript 无法访问除 cookie 名称和值之外的任何信息,您无法检索路径、到期时间等。您实际上想做什么?这是针对您正在开发的某个特定网站还是仅用于浏览时的一般用途?