2011-10-14 18 views
5

मैं अपने वेबपृष्ठ पर एक ब्राउज़र समर्थन सुविधा को लागू करने की कोशिश कर रहा हूं। फ़ायरफ़ॉक्स 3.6 के लिए यह ठीक काम कर रहा है, लेकिन किसी कारण से आईई 8 का उपयोगकर्ता एंजेंट गलत मान लौटा रहा है।IE 8 navigator.userAgent MSIE 7.0 क्यों लौटाता है?

यहां परिदृश्य है, जब मैं IE8 पर 'स्थानीय' जावास्क्रिप्ट कोड चलाता हूं, navigator.userAgent सही जानकारी (MSIE 8.0) देता है। लेकिन जब मैं एक सर्वर पर इस स्क्रिप्ट को चलाता हूं, तो यह आईई 8 ब्राउज़र पर एमएसआईई 7.0 लौटाता है।

कोई विचार?

+2

अगर आप उपयोगकर्ता एजेंट सूँघने रहे हैं, आप गलत कर रहे हैं और आपको लगता है कि इस तरह की समस्याओं का एक समूह है करने के लिए जा रहे हैं। आपको फीचर डिटेक्शन का उपयोग करना चाहिए, लेकिन आप यानी 7 और आईआई 8 के लिए सशर्त टिप्पणियां भी सेट कर सकते हैं और यह देखने के लिए कुछ सीएसएस बदल सकते हैं कि क्या हो रहा है। – albert

+1

ब्राउज़र स्नीफिंग के विपरीत फीचर डिटेक्शन का उपयोग करना अधिक मजबूत होगा, वहां बहुत सारे पुस्तकालय हैं, [इस Google खोज] का प्रयास करें (http://www.google.co.uk/webhp?sourceid=chrome-instant&ie=UTF -8 और आयन = 1 & नॉर्ड = 1 # sclient = psy-अब और hl = hi & safe = बंद और नॉर्ड = 1 & साइट = webhp और स्रोत = अश्वशक्ति और q = जावास्क्रिप्ट + सुविधा + का पता लगाने + पुस्तकालय और पीबीएक्स = 1 & OQ = जावास्क्रिप्ट + सुविधा + का पता लगाने + पुस्तकालय और aq = च & AQI = q-w1 और AQL = 1 & gs_sm = ई और gs_upl = 57834l58466l1l58566l8l4l0l0l0l0l253l658l1.1.2l4l0 और bav = on.2, or.r_gc.r_pw।, Cf.osb और fp = 64c9fa8ed75e2609 और आयन = 1 और biw = 1680 और bih = 865) – Clive

+1

क्या आपके स्थानीय नेटवर्क पर या इंटरनेट पर सर्वर है? IE8, डिफ़ॉल्ट रूप से, आईई 7 होने का नाटक करता है [इंट्रानेट साइट ब्राउज़ करते समय] (http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx)। – robertc

उत्तर

2

माइक्रोसॉफ्ट यह पेज प्रदान करता है।

ट्राइडेंट टोकन

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

जब ऐसा होता है, तो उपयोगकर्ता-एजेंट स्ट्रिंग में एक ट्राइडेंट टोकन जोड़ा जाता है। इस टोकन में एक संस्करण संख्या शामिल है जो आपको वर्तमान ब्राउज़र मोड के बावजूद ब्राउज़र के संस्करण की पहचान करने में सक्षम बनाता है।

अधिक: http://msdn.microsoft.com/en-us/library/ms537503.aspx

4

क्या आप वाकई IE7 मोड में नहीं चल रहे हैं? आप इसे डेवलपर सेटिंग्स (एफ 12, मुझे लगता है) में कहीं भी बदल सकते हैं। जावास्क्रिप्ट नमूना एक लगता होगा IE8 एक 8 वापसी होगी, नहीं एक 7.

+0

आपका मतलब "संगतता मोड" है। हां, यह संभव है, क्योंकि जावास्क्रिप्ट में, डगलस क्रॉकफोर्ड की लाइब्रेरी का उपयोग करके, आप इसका पता लगा सकते हैं, लेकिन सर्वर पर आप एक मौका नहीं खड़े हैं। – TMS