如何在启用"私密浏览"的iPhone上检测用户?

Bac*_*tnz 6 javascript iphone jquery-mobile

我的jquerymobile应用程序需要使用localStorage和sessionstorage等,我一直向没有cookie支持的用户发出提示并告诉他们启用cookie,但是如果用户启用了私有浏览,那么这个创建cookie测试我正在做的事情.工作,他们只是得到一个仍然错误的屏幕,有谁知道我如何测试用户是否启用了隐私浏览?

谢谢

lev*_*evi 9

我没有Iphone来测试它,但在桌面Safari浏览器(在私人模式下)运行下面的函数确实捕获错误并按预期处理它.

function storageEnabled() {
    try {
        localStorage.setItem("__test", "data");
    } catch (e) {
        if (/QUOTA_?EXCEEDED/i.test(e.name)) {
            return false;
        }
    }
    return true;
}

if (!storageEnabled()) alert('localStorage not enabled');
Run Code Online (Sandbox Code Playgroud)

Jsfiddle:http://jsfiddle.net/B9eZ5/

  • 我建议跳过catch块中的错误名称检查 - 如果localStorage.setItem抛出任何类型的异常,那么这个函数应该返回false. (7认同)