我在用户更改网页时使用html5网络存储来保存和加载数据,但它在iOS Safari隐私浏览模式下无效。
是否存在另一种方式(纯JavaScript)在不涉及服务器(即cookie)的情况下在页面之间传输数据?我试图尽可能快地保持它。
我不熟悉html5历史记录API,但可以用于此目的吗?
我知道我可以在网址中使用哈希值,但这看起来很难看。
答案 0 :(得分:0)
看起来你可以使用cookies:
// 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=/';
}