在新的iOS 11 Safari和MacOS高Sierra Safari上,看到如果window.localStorage.setItem('test', 1);
(請參閱https://stackoverflow.com/a/17741714/1330341)引發錯誤的技巧不再有效,因爲它不會再拋出錯誤,並且它也可以正確設置localStorage項目。有沒有人想出任何其他方式來檢查Safari新版本中的隱私瀏覽模式?如何檢測iOS 11中的隱私瀏覽Mobile Safari或MacOS High Sierra Safari?
回答
還沒有真正嘗試過,但閱讀蘋果文檔:
https://support.apple.com/kb/ph21413?locale=en_US
它列出了私人模式瀏覽的各種特性(〜剪斷):
當您使用隱私瀏覽窗口:
窗口中的每個選項卡都與其他人,因此您在一個標籤中查看的網站無法跟蹤您在其他標籤中瀏覽的內容。
Safari不記得您訪問的網頁或您的自動填充 信息。
Safari不會將您打開的網頁存儲在iCloud中,因此當您從其他設備查看所有打開的選項卡時,它們不會顯示爲 。
當您在智能搜索字段中使用 時,您最近的搜索不包含在結果列表中。
您下載的項目不包括在下載列表中。 (項目 仍保留在您的計算機上。)
如果您使用切換,則隱私瀏覽窗口不會傳遞到您的iOS設備或其他Mac計算機。
Safari不記得您的Cookie或其他網站 數據的更改。 Safari還會要求網站和其他人提供這些網站 的內容(包括廣告客戶)不要跟蹤您的 瀏覽,儘管網站必須遵守此請求。
支持私人瀏覽的插件停止存儲cookie和其他 跟蹤信息。
從上面,特別是我發現有趣的是,Safari特別要求網站「不跟蹤」瀏覽。這可能是尋找機制,以確定是否使用隱私瀏覽。
看到這個答案的一個例子:
Implementing Do not track in asp.net mvc
同樣,沒有測試過,並不能確定它是否會工作,但如果不在名單提供其他潛在的選項。 HTH。
蘋果網站報價。https://support.apple.com/kb/ph21413?locale=en_US
網站不能修改存儲在設備上的信息,因此服務,直到你把 關閉私人瀏覽 通常可以在這些網站可能工作不同
因此,存儲測試變量,變化它的值,然後讀取測試變量。 如果你得到一個異常,無法找到變量,值沒有改變,或者你得到一個空/未定義的值,他們很可能是私人模式。
或者,在隱私瀏覽中,您沒有可存取的搜索歷史記錄。因此,在啓動時重定向到您網站的新頁面,然後測試您是否有任何以前的歷史記錄。如果沒有,並且您收到「無法跟蹤」的事實很可能意味着您在Safari上處於私密模式。
請注意,我沒有測試過這個。這是基於Apple在上述鏈接中提供的信息。
我在這裏找到一個解決方案:
https://gist.github.com/cou929/7973956#gistcomment-2272103
var isPrivate = false;
try {
window.openDatabase(null, null, null, null);
} catch (_) {
isPrivate = true;
}
alert((isPrivate ? 'You\'re' : 'You aren\'t') + ' in private browsing mode');
希望它能幫助:),我才意識到
事情是Safari瀏覽器在私人模式拋出一個 「超出配額」 的錯誤。所以這就是我所做的!
isPrivateMode: function() {
if (localStorage.length === 0) {
try {
localStorage.setItem('isLocalStorageAvaialble', 'That is being tested!');
localStorage.removeItem('isLocalStorageAvaialble');
return false;
} catch (e) {
return true;
}
}
}
檢查localStorage的長度是一個事實,即,如果你想在支持本地存儲,而是充滿了瀏覽器這個方法,你仍然會得到錯誤的「超出配額」的重要。 在私人模式下,localStorage的長度始終爲0.
希望這有助於您!
- 1. 在AppleScript中檢測Safari瀏覽器隱私
- 2. 檢查隱私瀏覽菜單項在Safari中的AppleScript檢查
- 3. 在Mac OSX High Sierra上,Safari 11的書籤緩存在哪裏?
- 4. CSRF不能在django中與Safari瀏覽器隱私瀏覽
- 5. Intel HAXM on macOS high sierra(10.13)
- 6. Safari瀏覽器
- 7. 「project.copy」不適用於MacOS High Sierra
- 8. 爲什麼WebView的行爲與Safari不同(隱私瀏覽)?
- 9. Safari iOS Mobile的瀏覽器兼容性 - 創建Codepen
- 10. 無法在macOS Sierra上運行量角器測試,Safari 10.0.2
- 11. 通過Mobile Safari中的JavaScript檢測關閉瀏覽器選項卡?
- 12. 如何在量角器配置中啓用Safari的隱私瀏覽
- 13. 在Chrome瀏覽器和/或Safari瀏覽器中啓用XSS
- 14. iOS的Safari瀏覽器響應破碎
- 15. Safari瀏覽器的iOS - 點擊鏈接
- 16. 如何使用Javascript檢測瀏覽器是否爲Safari 5+?
- 17. 如果從Chrome或Safari瀏覽器
- 18. mobile-safari javascript:multiple setTimeouts或setIntervals
- 19. 如果隱私瀏覽模式開啓,Safari擴展程序如何知道?
- 20. 檢測iPad Safari或縮放
- 21. 股利只隱藏 - 的iOS/Safari瀏覽器只
- 22. macOS Safari是否與iOS Safari使用相同版本的WebKit(假設macOS和iOS Safari版本相同)?
- 23. 將Safari中的應用瀏覽器中的instagram轉義爲safari
- 24. iOS 5.1和Safari Mobile限制
- 25. 移動Safari瀏覽器IOS 6拍照
- 26. IOS Safari瀏覽器URL UTI份額片
- 27. Safari瀏覽器 - Mac vs Windows vs iOS
- 28. iOS Safari瀏覽器類文件夾
- 29. 使用Safari無法檢測iOS 11設備
- 30. 如何將iOS功能僅用於Safari瀏覽器<6.0 iOS