Safari无痕浏览模式检测

· 1 min read

为了能给用户提供个性化服务,所以有了Cookie小甜饼的存在,之后HTML5又有了localStorage,sessionStorage. 但是苹果的Safari浏览器在无痕浏览模式下是禁止localStorage操作,网页里存在此操作便会报错。 面对这种情况,我们前端可能需要去判断用户是否开启了无痕浏览模式,进而提醒用户。

Show Code

function isPrivateMode() {
  var isPrivate = false;
  try {
    window.openDatabase(null, null, null, null);
  } catch (_) {
    isPrivate = true;
  }
  return isPrivate;
}

if (isPrivateMode()) {
  alert("您的浏览器不支持本地存储,请关闭无痕浏览");
  window.location.href="https://support.apple.com/zh-cn/HT203036";
}

相关链接

Apple官网无痕浏览介绍

写在最后

这里之所以判别不用localStorage,sessionStorage,是因为Safari 11已经不适用,所以需要这样判断。