ब्राउज़र और प्रोटोटाइप पुस्तकालय में संस्करण?

वोट
14

मैं एटलस का उपयोग करने के लिए प्रयोग किया जाता रहा हूँ। हाल ही में मैं jQuery और कभी कभी प्रोटोटाइप में संक्रमण शुरू कर दिया है। परियोजना है कि मैं वर्तमान में काम कर रहा हूँ प्रोटोटाइप का उपयोग कर रहा है।

प्रोटोटाइप में, वहाँ एक आसान तरीका ब्राउज़र नाम और संस्करण प्राप्त करने के लिए है? मैं API दस्तावेज़ों से अधिक देखा है और इसे खोजने नहीं कर पा रहे।

16/10/2008 को 16:31
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


6 जवाब

वोट
3

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

यदि आप विशेष रूप से एक प्लगइन के रूप में ब्राउज़र की जानकारी प्राप्त करने की आवश्यकता है, मैं निम्नलिखित (सीधे jQuery से लिया गया) जोड़ने का सुझाव होगा:

var Browser = Class.create({
  initialize: function() {
    var userAgent = navigator.userAgent.toLowerCase();
    this.version = (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1];
    this.webkit = /webkit/.test( userAgent );
    this.opera = /opera/.test( userAgent );
    this.msie = /msie/.test( userAgent ) && !/opera/.test( userAgent );
    this.mozilla = /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent );
  }
});
16/10/2008 को 18:33
का स्रोत उपयोगकर्ता

वोट
7

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

यहाँ ब्राउज़र- और सुविधा का पता लगाने का एक हिस्सा है prototype.jsस्रोत पेड़ में वर्तमान में:

var Prototype = {
  Browser: {
    IE:     !!(window.attachEvent &&
      navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && 
      navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  },

  BrowserFeatures: {
    XPath: !!document.evaluate,
    SelectorsAPI: !!document.querySelector,
    ElementExtensions: !!window.HTMLElement,
    SpecificElementExtensions: 
      document.createElement('div')['__proto__'] &&
      document.createElement('div')['__proto__'] !== 
        document.createElement('form')['__proto__']
  },
}

तो अगर आप के मान की जांच कर जांच कर सकता है, तो मौजूदा ब्राउज़र आईई है Prototype.Browser.IE, वैकल्पिक रूप से या, भविष्य के लिए अधिक संगत हो सकता है और साथ XPath की तरह एक विशेष सुविधा के लिए जाँच Prototype.BrowserFeatures.XPath

27/10/2008 को 00:39
का स्रोत उपयोगकर्ता

वोट
18

चलो एक पूरा होने nertzy के रूप में आप इस का उपयोग कर आईई संस्करण का पता लगाने की क्षमता जोड़ सकते का जवाब:

Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Prototype.Browser.IE7 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Prototype.Browser.IE8 = Prototype.Browser.IE && !Prototype.Browser.IE6 && !Prototype.Browser.IE7;

दूसरी ओर आप भी सर्वर साइड पर उपयोगकर्ता एजेंट विवरणों का पता लगाने के लिए है। वैसे भी ब्राउज़र का पता लगाने क्रॉस-ब्राउज़र स्क्रिप्ट लिखने के लिए एक गंभीर रूप से दोषपूर्ण रणनीति यह है कि जब ब्राउज़र सुविधा का पता लगाने में विफल रहता है प्रयोग की जाने वाली बस है। यह एक उपयोगकर्ता उसकी / उसके उपयोगकर्ता एजेंट विवरण को बदलने के लिए के लिए बहुत आसान है।

09/03/2009 को 14:41
का स्रोत उपयोगकर्ता

वोट
2

मैं prototype.js के बाद बढ़ाया है:

var Prototype = { ... };

इसके साथ:

// extension
if (Prototype.Browser.IE) {
    if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
        Prototype.BrowserFeatures['Version'] = new Number(RegExp.$1);
    }
}

मेरे लिए ठीक काम करता है, फोन करने की तरह है:

if (Prototype.Browser.IE && Prototype.BrowserFeatures['Version'] == 8) { ... }
01/12/2009 को 11:51
का स्रोत उपयोगकर्ता

वोट
3

मैं और प्रोटोटाइप के ब्राउज़र परिभाषाओं के ऊपर इस का उपयोग करें।

Object.extend(Prototype.Browser, {
    ie6: (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) ? (Number(RegExp.$1) == 6 ? true : false) : false,
    ie7: (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) ? (Number(RegExp.$1) == 7 ? true : false) : false,
    ie8: (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) ? (Number(RegExp.$1) == 8 ? true : false) : false,
    ie9: (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) ? (Number(RegExp.$1) == 9 ? true : false) : false
});

आशा करता हूँ की ये काम करेगा!

22/01/2011 को 21:58
का स्रोत उपयोगकर्ता

वोट
0
            <script type="text/JavaScript">

                function getBrowserVersion()
                {
                    var msg = "Not Recognised Browser";

                    if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent))
                    {
                        var ffversion = new Number(RegExp.$1)

                        for (var i = 1; i < 20; i++)
                        {
                            if (ffversion == i)
                            {
                                msg = "FF" + i + "x";
                                break;
                            }
                        }
                    }
                    else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
                    {
                        var ieversion = new Number(RegExp.$1)

                        for (var i = 1; i < 20; i++)
                        {
                            if (ieversion == i)
                            {
                                msg = "IE" + i + "x";
                                break;
                            }
                        }
                    }

                    alert(msg); // return msg; 
                }

           </script>
24/02/2012 को 22:11
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more