2010-10-18 75 views
6

我正在寫一個Safari擴展,並希望它在用戶打開私密瀏覽模式(我想尊重這種私人模式)時行爲不同。如果隱私瀏覽模式開啓,Safari擴展程序如何知道?

我在Apple的文檔中沒有發現這一點。

我知道在這個線程的討論:

Detecting if a browser is using Private Browsing mode

這表明使用(瀏覽器無關)JS-CSS技巧來檢測私人瀏覽模式,但希望有一些掛鉤內置到Safari,我可以用於我的擴展。

任何想法?

回答

0

所有私人模式都會忽略瀏覽器使用的cookiejar的當前狀態。使用類似evercookie的東西來跟蹤特定的瀏覽器以及它如何管理其各種會話ID。例如,如果您有一個60年到期的http cookie,並且此cookie值不存在於您的服務器的請求中,那麼您知道cookie值已被刷新或處於私有模式。這需要您多一點實驗,但是這個方向將是檢測瀏覽器中私人模式使用的一般方法。

1

您可以查詢布爾safari.application.privateBrowsing.enabled檢查是否啓用隱私瀏覽。

您還可以附加事件偵聽器,以在隱私瀏覽被激活或停用時觸發自定義代碼。

safari.application.privateBrowsing.addEventListener('activate', function(e) { 
    console.log("Private browsing activated"); 
}); 

safari.application.privateBrowsing.addEventListener('deactivate', function(e) { 
    console.log("Private browsing deactivated"); 
}); 

來源:Apple Docs

相關問題