2017-08-16 92 views

回答

1

還沒有真正嘗試過,但閱讀蘋果文檔:

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。

1

蘋果網站報價。https://support.apple.com/kb/ph21413?locale=en_US

網站不能修改存儲在設備上的信息,因此服務,直到你把 關閉私人瀏覽 通常可以在這些網站可能工作不同

因此,存儲測試變量,變化它的值,然後讀取測試變量。 如果你得到一個異常,無法找到變量,值沒有改變,或者你得到一個空/未定義的值,他們很可能是私人模式。

或者,在隱私瀏覽中,您沒有可存取的搜索歷史記錄。因此,在啓動時重定向到您網站的新頁面,然後測試您是否有任何以前的歷史記錄。如果沒有,並且您收到「無法跟蹤」的事實很可能意味着您在Safari上處於私密模式。

請注意,我沒有測試過這個。這是基於Apple在上述鏈接中提供的信息。

0

我在這裏找到一個解決方案:

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'); 

希望它能幫助:),我才意識到

0

事情是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.

希望這有助於您!

相關問題