我使用 html5 Web 存储在用户更改页面时保存和加载数据,但它在 iOS Safari 隐私浏览模式下不起作用。
是否有另一种方法(纯 JavaScript)在页面之间传输数据而不涉及服务器(即 cookies)?我正在努力保持尽可能快的速度。
我不熟悉 html5 历史记录 API,但它可以用于此目的吗?
我知道我可以在 URL 中使用哈希,但这看起来不太美观。
最佳答案
看起来您可以使用 cookie 来实现此目的:
// cookie for ios safari private browsing between pages
function getCookieValue(key) {
return grep(document.cookie.split(/;\s*/), function (cookie) {
return cookie.indexOf(key + '=') == 0;
}).map(function (cookie) {
return decodeURIComponent(cookie.replace(key + '=', ''));
})[0];
}
function cookieStorage() {
var cookies = {};
document.cookie.split(/;\s*/).forEach(function(cookie){
var split = cookie.split('=');
cookies[split[0]] = decodeURIComponent(split.slice(1).join('='));
});
return cookies;
}
function clearCookies() {
document.cookie.split(/;\s*/).forEach(function (cookie) {
// have to set path as they may have been set from a different page
document.cookie = cookie.split('=', 1)[0] + '=;path=/;expires=' + new Date().toUTCString();
});
}
function setCookie(key, s) {
// have to set path so we can clear them from a different page
document.cookie = key + '=' + encodeURIComponent(s) + ';path=/';
}
关于javascript - 在 ios safari 隐私浏览模式下更改位置时保留存储空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35542673/