2010-10-18 11 views
6

Safari uzantısı yazıyorum ve kullanıcı Özel Tarama modunu açtığımda farklı davranmasını istiyorum (Bu özel moda uymak istiyorum).Özel Tarama modu açık olduğunda bir Safari uzantısı nasıl olabilir?

Apple'ın belgelerinde bundan bahsetmemiştim. Özel-tarama modunu algılamak için bir (tarayıcı-agnostik) js-CSS hile kullanarak önerir, ancak orada umuyordum

Detecting if a browser is using Private Browsing mode

bazı kanca:

ben bu iplik tartışma farkındayım Uzantım için kullanabileceğim Safari'ye yerleşik.

Herhangi bir fikrin var mı?

cevap

0

Tüm özel modlar, tarayıcı tarafından kullanılan cookiejar öğesinin geçerli durumunu yoksayar. Belirli bir tarayıcıyı takip etmek ve çeşitli oturum kimliklerini nasıl yönetdiğini öğrenmek için evercookie gibi bir şey kullanın. Örneğin, 60 yıl içinde sona erecek bir http çereziniz varsa ve bu çerez değeri sunucunuza bir istekte mevcut değilse, o zaman çerez değerlerinin temizlendiğini veya özel modda olduklarını bilirsiniz. Bu sizin tarafınızda biraz daha deneme gerektirecektir, ancak bu yön tarayıcılarda özel mod kullanımını algılamak için genel bir yöntem olacaktır.

1

Özel göz atmanın etkin olup olmadığını kontrol etmek için boole safari.application.privateBrowsing.enabled sorgulayabilirsiniz.

Ayrıca, özel göz atma etkinleştirildiğinde veya devre dışı bırakıldığında özel kodu tetiklemek için olay dinleyicileri de ekleyebilirsiniz.

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

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

Kaynak: Apple Docs

İlgili konular