回答
在隱私模式,用戶不能使用本地存儲試試這個:
var storageTestKey = 'sTest',
storage = window.sessionStorage;
try {
storage.setItem(storageTestKey, 'test');
storage.removeItem(storageTestKey);
} catch (e) {
if (e.code === DOMException.QUOTA_EXCEEDED_ERR && storage.length === 0) {
// private mode
} else {
throw e;
}
}
iOS上無法分辨,但在Chrome中無法使用。這是一個小提琴:http://jsfiddle.net/n49yQ/ – Kos
這是因爲Safari和Chrome在私人會話期間處理存儲的想法有所不同。 Chrome在隱身模式下仍然允許**臨時**會話存儲,而Safari完全禁止訪問。我更喜歡Chrome的實現,因爲HTML5應用程序仍然可以緩存文件/圖像。 – stevokk
@Kos你的jsfiddle不再工作了。這裏是一個工作小提琴:http://jsfiddle.net/harianus/aueb9u74/它發現Safari Prived模式時檢測到。 – harianus
我發現一個Answear在GitHub和測試它:在IOS 11個工作!
var isPrivate = false;
try {
window.openDatabase(null, null, null, null);
} catch (_) {
isPrivate = true;
}
alert((isPrivate ? 'You\'re' : 'You aren\'t') + ' in private browsing mode');
- 1. 檢查隱私瀏覽菜單項在Safari中的AppleScript檢查
- 2. 如何檢查用戶是否使用Android瀏覽器?
- 3. 檢測隱私瀏覽 - Safari問題
- 4. 如何檢查瀏覽器是否使用Javascript?
- 5. 如何使用JS/jQuery檢查瀏覽器是否支持touchstart?
- 6. YDN如何處理隱私瀏覽?
- 7. 如何檢測iOS 11中的隱私瀏覽Mobile Safari或MacOS High Sierra Safari?
- 8. Android Webview隱私瀏覽
- 9. 如何檢測隱私瀏覽模式中的更改
- 10. 如何使用jquery檢查瀏覽器?
- 11. 如何檢查用戶的瀏覽器是否支持Google Caja?
- 12. 如何檢查Javascript是否在瀏覽器中啓用
- 13. 如何檢查瀏覽器緩存是否被禁用
- 14. 如何檢查Flash是否在瀏覽器中啓用?
- 15. 檢查瀏覽器是否已關閉
- 16. 檢查瀏覽器是否接受Cookie
- 17. 檢查瀏覽器是否支持SVG
- 18. 檢查瀏覽器是否理解JavaScript
- 19. 檢查瀏覽器是否支持MutationObserver
- 20. 檢查瀏覽器是否爲Firefox
- 21. 如何從IOS上的JS檢測瀏覽器是否可見?
- 22. 檢查請求是否來自iOS上的webview或瀏覽器?
- 23. 如何檢查是否瀏覽器是火狐在CSS
- 24. 如何檢查是否AJAX請求是由瀏覽器
- 25. 如何檢測瀏覽器是否支持webkit瀏覽器?
- 26. 檢查用戶是否使用位於中國的瀏覽器
- 27. 檢查用戶是否正在使用手機瀏覽
- 28. 網站不適用於Safari瀏覽器隱私瀏覽
- 29. 如何使用jQuery檢測瀏覽器是否爲Chrome?
- 30. 如何使用JavaScript檢測瀏覽器是否爲android webview?
BTW:我的看法是一個Web應用程序不應該能夠分辨的差異,如果它可以是一個瀏覽器的bug。 (雖然這顯然不能解決您的問題,但我不知道是什麼原因) – Kos