2010-10-18 25 views
6

मैं एक सफारी एक्सटेंशन लिख रहा हूं और जब उपयोगकर्ता निजी ब्राउज़िंग मोड चालू करता है तो मैं अलग-अलग व्यवहार करना चाहता हूं (मैं इस निजी मोड का सम्मान करना चाहता हूं)।निजी ब्राउज़िंग मोड चालू होने पर सफारी एक्सटेंशन कैसे पता लगा सकता है?

मुझे ऐप्पल के दस्तावेज़ों में इसका कोई उल्लेख नहीं मिला।

मैं इस सूत्र में चर्चा के बारे में पता कर रहा हूँ:

Detecting if a browser is using Private Browsing mode

जो एक (ब्राउज़र-नास्तिक) जे एस-सीएसएस चाल का उपयोग करने का सुझाव निजी ब्राउज़िंग मोड का पता लगाने के, लेकिन वहाँ उम्मीद थी कुछ हुक है सफारी में बनाया गया था कि मैं अपने विस्तार के लिए उपयोग कर सकता था।

कोई विचार?

उत्तर

0

सभी निजी मोड ब्राउज़र द्वारा उपयोग किए जाने वाले कुकीजर की वर्तमान स्थिति को अनदेखा कर देंगे। एक विशिष्ट ब्राउज़र का ट्रैक रखने के लिए evercookie जैसे कुछ का उपयोग करें और यह अपने विभिन्न सत्र आईडी का प्रबंधन कैसे करता है। उदाहरण के लिए, यदि आपके पास एक HTTP कुकी है जो 60 वर्षों में समाप्त हो जाती है, और यह कुकी मान आपके सर्वर के अनुरोध में मौजूद नहीं है, तो आप जानते हैं कि कुकी मान फ़्लश किए गए हैं या वे निजी मोड में हैं। इसके लिए आपको थोड़ा सा प्रयोग करने की आवश्यकता होगी, लेकिन यह दिशा ब्राउज़र में निजी मोड के उपयोग का पता लगाने के लिए एक सामान्य विधि होगी।

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

संबंधित मुद्दे