在ios safari隐私浏览模式下更改位置时保留存储空间

时间:2016-02-21 22:00:22

标签: javascript ios html5 safari html5-history

我在用户更改网页时使用html5网络存储来保存和加载数据,但它在iOS Safari隐私浏览模式下无效。

是否存在另一种方式(纯JavaScript)在不涉及服务器(即cookie)的情况下在页面之间传输数据?我试图尽可能快地保持它。

我不熟悉html5历史记录API,但可以用于此目的吗?

我知道我可以在网址中使用哈希值,但这看起来很难看。

1 个答案:

答案 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=/';
}