2012-10-10 24 views
4

我的jquery插件之一是有問題,並且當在ios中打開隱私瀏覽時會出現問題。如何檢查ios是否使用隱私瀏覽

有沒有辦法檢查這個?

+0

BTW:我的看法是一個Web應用程序不應該能夠分辨的差異,如果它可以是一個瀏覽器的bug。 (雖然這顯然不能解決您的問題,但我不知道是什麼原因) – Kos

回答

13

在隱私模式,用戶不能使用本地存儲試試這個:

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; 
    } 
} 
+0

iOS上無法分辨,但在Chrome中無法使用。這是一個小提琴:http://jsfiddle.net/n49yQ/ – Kos

+2

這是因爲Safari和Chrome在私人會話期間處理存儲的想法有所不同。 Chrome在隱身模式下仍然允許**臨時**會話存儲,而Safari完全禁止訪問。我更喜歡Chrome的實現,因爲HTML5應用程序仍然可以緩存文件/圖像。 – stevokk

+1

@Kos你的jsfiddle不再工作了。這裏是一個工作小提琴:http://jsfiddle.net/harianus/aueb9u74/它發現Safari Prived模式時檢測到。 – harianus

0

我發現一個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'); 
相關問題