2015-08-25 10 views
36

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

<!--[if IE 11]> 
Special instructions for IE 11 here 
<![endif]--> 
+2

क्यों आप ऐसा करना चाहते हैं? –

+2

आपको लगभग निश्चित रूप से ऐसा करने की आवश्यकता नहीं है। आप ऐसा करने की कोशिश क्यों कर रहे हैं? – Patrick

+14

यह निश्चित रूप से कुछ है जो आपको चाहिए। लेखन के समय, एज अभी भी quircks से भरा है जो गंभीर सीएसएस गड़बड़ कर देगा जो आईई सहित हर दूसरे ब्राउज़र में काम करता है। – Lawyerson

उत्तर

81

यह एक काम करना चाहिए:

@supports (-ms-ime-align:auto) { 
    .selector { 
     property: value; 
    } 
} 

और अधिक देखने के लिए: Browser Strangeness

+6

माइक्रोसॉफ्ट एमएस एज में जितना संभव हो उतने प्रीफिक्स्ड गुणों को हटाने के लिए आगे बढ़ रहा है ताकि अन्य ब्राउज़रों के साथ अंतःक्रियाशील हो सके। इस प्रकार, यह भविष्य में काम करने की गारंटी से बहुत दूर है। जैसा कि अन्य उत्तरों में उल्लिखित है, फीचर डिटेक्शन अधिक बेहतर है। –

+0

बस इसे फिर से परीक्षण किया और यह निश्चित रूप से काम करता है। डेमो: http://jsfiddle.net/pd142446/ – KittMedia

+0

ये !, अब काम कर रहा है। धन्यवाद। –

8

फ़ीचर का पता लगाने, सुविधा का पता लगाने, सुविधा का पता लगाने। अभी तक एक अच्छा उपयोग केस नहीं मिला है कि क्यों किसी को UA को स्नीफ या सीएसएस के साथ पता लगाने की आवश्यकता होगी। क्या आप थोड़ी सी विस्तार से बता सकते हैं, एक केस केस?

सीएसएस

मैं this post from Jeff Clayton पाया है, जो दर्शाता है कि सीएसएस के माध्यम से एज लगता है, लेकिन यह भी क्रोम और सफारी की पहचान करेगा।

/* Chrome, Safari, AND NOW ALSO the Windows 10 Edge Browser */ 
@media screen and (-webkit-min-device-pixel-ratio:0) { 
    .selector { property:value; } 
} 

लेकिन अगर You must यूए सूंघ:

माइक्रोसॉफ्ट एज यूए स्ट्रिंग:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, छिपकली की तरह) क्रोम/42.0 .2311.135 सफारी/537.36 एज/12,10136

I detail why in this blog post.

नियोविन ने हाल ही में रिपोर्ट की है कि विंडोज 10, स्पार्टन के लिए माइक्रोसॉफ्ट का नया ब्राउज़र क्रोम UA स्ट्रिंग का उपयोग करता है, "मोज़िला/5.0 (विंडोज एनटी 10.0; WOW64) AppleWebKit/537.36 (केएचटीएम, जैसे गेको) क्रोम/39.0.2171.71 सफारी/537.36 एज/12.0 "।यह उद्देश्य पर किया जाता है।

आप यह भी देखेंगे कि संपूर्ण स्ट्रिंग "एज/12.0" के साथ समाप्त होती है, जो क्रोम नहीं करता है।

मुझे यह इंगित करना चाहिए कि माइक्रोसॉफ्ट ने आईई 11 के साथ क्या किया है, यह विंडोज़ 8 पढ़ता है: मोज़िला/5.0 (विंडोज एनटी 6.3; ट्राइडेंट/7.0; आरवी: 11.0) गीको जैसे, जैसा कि इस पोस्ट में बताया गया है।

उपयोगकर्ता एजेंट स्नीफिंग क्या है?

अक्सर, वेब डेवलपर्स ब्राउज़र का पता लगाने के लिए स्नीफिंग करेंगे। मोज़िला अपने ब्लॉग पर अच्छी तरह से बताता है:

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

Here’s a great article explaining the history of the User Agent.

अक्सर, आलसी डेवलपर्स यूए स्ट्रिंग और अपनी वेबसाइट पर अक्षम सामग्री पर जो ब्राउज़र उनका मानना ​​है कि दर्शक उपयोग कर रहा है के आधार के लिए सिर्फ सूंघ जाएगा।इंटरनेट एक्सप्लोरर 8 डेवलपर्स के लिए निराशा का एक आम बिंदु है, इसलिए वे अक्सर जांच करेंगे कि क्या उपयोगकर्ता IE के किसी भी संस्करण का उपयोग कर रहा है, और सुविधाओं को अक्षम कर सकता है।

The Edge team details this even deeper on their blog.

सभी उपयोगकर्ता एजेंट तार वास्तविक ब्राउज़र का उपयोग कर रहे हैं के अलावा अन्य ब्राउज़र के बारे में अधिक जानकारी है - न केवल टोकन, लेकिन यह भी 'सार्थक' संस्करण संख्या।

Internet Explorer 11 के यूए स्ट्रिंग:

Mozilla/5.0 (Windows NT 6.3, ट्राइडेंट/7.0, आर.वी.: 11.0) छिपकली

माइक्रोसॉफ्ट एज यूए स्ट्रिंग की तरह:

मोज़िला/5.0 (विंडोज एनटी 10.0) ऐप्पलवेबकिट/537.36 (केएचटीएम, जैसे गेको) क्रोम/42.0.2311.135 सफारी/537.36 एज/12.10136

उपयोगकर्ता एजेन्ट संपत्ति को डब्ल्यू 3 सी चर्चाओं में पैट्रिक एच लॉक द्वारा "झूठ का एक बढ़ता हुआ पैक" के रूप में वर्णित किया गया है। ("या बल्कि, पर्याप्त विरासत वाले कीवर्ड जोड़ने का संतुलित संतुलन जो कि पुराने यूए-स्नीफिंग कोड को तुरंत समाप्त नहीं करेगा, जबकि वास्तव में कुछ हद तक उपयोगी और सटीक जानकारी व्यक्त करने की कोशिश कर रहा है।"

हम अनुशंसा करते हैं कि वेब डेवलपर्स UA जितना संभव हो स्नीफिंग से बचें; आधुनिक वेब प्लेटफार्म विशेषताएं लगभग सभी तरीकों से सुलभ हैं। पिछले वर्ष में, हमने कुछ UA-sniffing साइटें देखी हैं जिन्हें माइक्रोसॉफ्ट एज का पता लगाने के लिए अद्यतन किया गया है ... केवल इसे विरासत आईई 11 कोड पथ प्रदान करने के लिए। यह सबसे अच्छा तरीका नहीं है, क्योंकि माइक्रोसॉफ्ट एज 'वेबकिट' व्यवहार से मेल खाता है, आईई 11 व्यवहार नहीं (किसी भी एज-वेबकिट मतभेद ऐसे बग हैं जिन्हें हम फिक्सिंग में रुचि रखते हैं)।

हमारे अनुभव में माइक्रोसॉफ्ट एज इन साइटों में 'वेबकिट' कोड पथों पर सबसे अच्छा चलता है। साथ ही, इंटरनेट विभिन्न प्रकार के उपकरणों पर उपलब्ध होने के साथ, कृपया अनुमान लगाएं कि अज्ञात ब्राउज़र अच्छे हैं - कृपया अपनी साइट को केवल वर्तमान ज्ञात ब्राउज़रों के एक छोटे से सेट पर काम करने के लिए सीमित न करें। यदि आप ऐसा करते हैं, तो आपकी साइट भविष्य में लगभग निश्चित रूप से टूट जाएगी।

निष्कर्ष

क्रोम यूए स्ट्रिंग पेश करके, हम हैक्स इन डेवलपर्स का उपयोग कर रहे आस-पास काम कर सकते हैं, उपयोगकर्ताओं के लिए सबसे अच्छा अनुभव पेश करने के लिए।

+17

क्या आपका उत्तर किसी भी तरह से प्रश्न से संबंधित नहीं है? आप वर्णन करते हैं कि क्यों उपयोगकर्ता एजेंट का पता लगाने के लिए उपयोग नहीं किया जाना चाहिए, जो प्रश्न का उत्तर नहीं देता - सीएसएस के माध्यम से इसे कैसे करें - किसी भी तरह से। – KittMedia

+0

मैंने यह भी बताया कि फीचर डिटेक्शन के अलावा कुछ और क्यों करना अक्सर हानिकारक होता है। यह भी उम्मीद कर रहा था कि कोई आखिरकार चित्रित करेगा कि वे फीचर डिटेक्शन के बजाय स्नीफिंग या सीएसएस का उपयोग क्यों करेंगे। –

+0

क्या मेरे उत्तर के बारे में कुछ गलत था? –

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