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

标签 javascript ios html safari html5-history

我使用 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/

相关文章:

javascript - 将 css 类应用于 ng-repeat 中的第一个单元格

javascript - Json 从服务器到 html 表

javascript - 自动完成组件内的 React Material UI 图标

javascript - 使弹出窗口的高度扩展到它的子项的内容

javascript - 如何从网页访问 iPhone 的摄像头?

javascript - 如何从 DIV 元素内的 FOR 循环读取数据

javascript - 表单输入检查Javascript

ios - 如何在 iOS 启动时设置 Storyboard?

ios - 是否可以在后台模式下运行 Quickblox SDK?

ios - DragonMobile SDK SpeechKit 不工作 [NMSP_DEBUG]