2016-04-27 9 views
6

MDN documentation कहता है कि window.navigator.userAgent को बहिष्कृत किया गया है और इसका उपयोग नहीं किया जाना चाहिए। यदि मैं एनालिटिक्स (फीचर डिटेक्शन नहीं) के लिए उपयोगकर्ता ब्राउज़र और ओएस डेटा एकत्र करना चाहता हूं, तो इसके बजाय मुझे क्या उपयोग करना चाहिए?अगर window.navigator.userAgent को बहिष्कृत किया गया है, तो इसके बजाय मुझे क्या उपयोग करना चाहिए?

उत्तर

3

उपयोगकर्ता एजेंट स्ट्रिंग अर्थहीन और बेहद अविश्वसनीय हो रही है।

आपको उपयोगकर्ता एजेंट स्ट्रिंग का उपयोग नहीं करना चाहिए, बल्कि आपको सुविधा का पता लगाने का उपयोग करना चाहिए। यदि आपको फीचर एक्स का उपयोग करने की आवश्यकता है, तो यह देखने के लिए जांच करें कि एक्स उपलब्ध है या नहीं।

लेकिन सीधे आपके प्रश्न का उत्तर देने के लिए, कोई जेएस विकल्प नहीं है।

2

ब्राउज़र उपयोगकर्ता एजेंट स्ट्रिंग का पता लगाने के आधार पर पहचान अविश्वसनीय है और अनुशंसित नहीं है, के रूप में उपयोगकर्ता एजेंट स्ट्रिंग उपयोगकर्ता विन्यास योग्य है।

उदाहरण के लिए: config:

  • Firefox में, आप के बारे में में वरीयता general.useragent.override बदल सकते हैं। कुछ फ़ायरफ़ॉक्स एक्सटेंशन करते हैं; हालांकि, यह केवल HTTP हेडर को भेजता है जो भेजा जाता है, और जावास्क्रिप्ट कोड द्वारा किए गए ब्राउज़र पहचान को प्रभावित नहीं करता है।
  • ओपेरा 6 + उपयोगकर्ताओं के माध्यम से ब्राउज़र पहचान स्ट्रिंग सेट करने के लिए एक मेनू
  • माइक्रोसॉफ्ट इंटरनेट एक्सप्लोरर Windows रजिस्ट्री
  • सफारी और iCab उपयोगकर्ताओं को ब्राउज़र उपयोगकर्ता एजेंट स्ट्रिंग को बदलने के लिए इंटरनेट एक्सप्लोरर या नेटस्केप तार पूर्वनिर्धारित करने की अनुमति का उपयोग करता है की अनुमति देता है मेनू के माध्यम से।

Source

मुझे लगता है, कि वे जावास्क्रिप्ट से पूरी तरह से इस सुविधा को दूर करने के कोशिश कर रहे हैं।

अद्यतन:

Object-Oriented JavaScript, 2nd Edition: यह उपयोगकर्ता एजेंट स्ट्रिंग पर भरोसा करने के लिए बेहतर नहीं है, लेकिन सूँघने विशेषता (जिसे क्षमता का पता लगाने कहा जाता है) के बजाय का उपयोग करें। इसका कारण यह है कि सभी ब्राउज़रों और उनके विभिन्न संस्करणों का ट्रैक रखने के लिए यह कठिन है। यह है बस यह जांचना आसान है कि आप जिस सुविधा का उपयोग करना चाहते हैं वह वास्तव में उपयोगकर्ता के ब्राउज़र में उपलब्ध है।

if (typeof window.addEventListener === 'function') { 

    // feature is supported, let's use it 
} 
else { 

    // hmm, this feature is not supported, will have to 
    // think of another way 
} 
+1

आधुनिक पहले से ही सुविधा का पता लगाने का उपयोग करता है: उदाहरण के लिए कोड निम्नलिखित पर एक नजर है। उदाहरण के लिए: https://github.com/Modernizr/Modernizr/blob/master/src/prefixedCSSValue.js – Quentin

+0

हां, आप सही हैं –

+0

आप एक प्रतिपादन बग के आसपास काम करने की आवश्यकता के बारे में कैसे पता लगाते हैं? – Jules

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

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