आप किसी ब्राउज़र के संस्करण का पता कैसे लगा सकते हैं?


287

मैं कोड के लिए चारों ओर खोज रहा हूं जो मुझे पता लगाएगा कि क्या वेबसाइट पर जाने वाले उपयोगकर्ता के पास फ़ायरफ़ॉक्स 3 या 4 है। मैंने पाया है कि सभी प्रकार के ब्राउज़र का पता लगाने के लिए कोड है, लेकिन संस्करण नहीं।

मैं इस तरह एक ब्राउज़र के संस्करण का पता कैसे लगा सकता हूं?


6
मैं छोटे चंक कोड के बजाय एक सिद्ध पुस्तकालय पर सेटअप करने की सलाह देता हूं: * github.com/bestiejs/platform.js * github.com/ded/bowser दोनों में 1000 स्टार
साइमन फकीर

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

जवाबों:


504

आप देख सकते हैं कि ब्राउज़र क्या कहता है , और कई ब्राउज़रों को लॉग या परीक्षण करने के लिए उस जानकारी का उपयोग करें।

navigator.sayswho= (function(){
    var ua= navigator.userAgent, tem, 
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
        return 'IE '+(tem[1] || '');
    }
    if(M[1]=== 'Chrome'){
        tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
    }
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
    return M.join(' ');
})();

console.log(navigator.sayswho); // outputs: `Chrome 62`


2
बस गंभीर गंभीर समस्या का पता लगाने के लिए आईओएस 10 में आईवी 10 नाविक उपयोगकर्ता एजेंट को अपग्रेड करते हुए मोज़िला / 4.0 (वैकल्पिक MSIE 7.0; Windows NT 6.1; WOW64; त्रिशूल / 6.0; SLCC2; .NET CLR 2.0.50727; NET CLR 3.5.30729; .NET; CLR 3.0.30729; मीडिया सेंटर PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) स्ट्रिंग से इसका IE7 त्रिशूल / 6.0 के साथ सावधान
योगेश

अंतिम पंक्ति के लिए 2 नहीं होना चाहिए M[1] = tem[1]बजाय M[2]? कोड के साथ जैसा कि यह वर्तमान में खड़ा है, ओपेरा 12.14 उपयोगकर्ता एजेंट स्ट्रिंग Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14परिणाम देता है Opera 9.80 12.14। IMO, सही परिणाम वही होगा Opera 12.14जो मेरे सुझाव से पूरा होगा।
किर्क वोले

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

एज का अभी तक हिसाब नहीं था:tem = ua.match(/\b(OPR|Edge)\/(\d+)/i); if (tem != null) return {name : tem[1] === 'OPR' ? 'Opera' : tem[1], version : tem[2]};
विन्सेन्ट केटेलार्स

6
यह स्क्रिप्ट गलत रूप से ब्राउज़र क्रोम संस्करण 4.0 को आंतरिक फेसबुक ब्राउज़र के लिए रिपोर्ट करती है (एंड्रॉइड पर फेसबुक ऐप के भीतर वेब लिंक पर क्लिक करने पर लॉन्च)। Useragent स्ट्रिंग कुछ Mozilla/5.0 (Linux; Android 5.0; Nexus 9 Build/LRX21R; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.95 Safari/537.36 [FB_IAB/FB4A;FBAV/50.0.0.10.54;]इस तरह दिखती है: यह एक बहुत ही प्रमुख उपयोगकर्ता एजेंट है दुर्भाग्य से यह वास्तव में इसे अनदेखा नहीं कर सकता ...
18

205

यह केनेबेक के उत्तर पर एक सुधार है।

function get_browser() {
    var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 
    if(/trident/i.test(M[1])){
        tem=/\brv[ :]+(\d+)/g.exec(ua) || []; 
        return {name:'IE',version:(tem[1]||'')};
        }   
    if(M[1]==='Chrome'){
        tem=ua.match(/\bOPR|Edge\/(\d+)/)
        if(tem!=null)   {return {name:'Opera', version:tem[1]};}
        }   
    M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);}
    return {
      name: M[0],
      version: M[1]
    };
 }

var browser=get_browser(); // browser.name = 'Chrome'
                           // browser.version = '40'

console.log(browser);

इस तरह आप कोड की अस्पष्टता से खुद को ढाल सकते हैं।


(कुछ प्लेटफार्मों - उदाहरण के लिए ओएस एक्स - navigator.userAgent के लिए एक अलग आउटपुट देगा और आप ओपेरा ब्राउज़र को 'ओपेरा' स्ट्रिंग द्वारा नहीं बल्कि 'ओपीआर' के साथ पहचान सकते हैं)।
ट्रिनोनेसिस

get_browser और get_browser_version मंदिर के अंदर 'अगर त्रिशूल' और 'अगर क्रोम' की स्थिति में गलत विवरण लौटाते हैं तो! = null
Pixelthis

54

यह केमैनबेक (K) के उत्तर को हरमन इंग्लैड्ससन (H) के उत्तर के साथ जोड़ती है:

  • मूल उत्तर का न्यूनतम कोड बनाए रखता है। (क)
  • Microsoft एज (K) के साथ काम करता है
  • एक नया चर / वस्तु बनाने के बजाय नाविक वस्तु का विस्तार करता है। (क)
  • ब्राउज़र संस्करण और नाम को स्वतंत्र बाल वस्तुओं में अलग करता है। (एच)

 

navigator.browserSpecs = (function(){
    var ua = navigator.userAgent, tem, 
        M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
        return {name:'IE',version:(tem[1] || '')};
    }
    if(M[1]=== 'Chrome'){
        tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem != null) return {name:tem[1].replace('OPR', 'Opera'),version:tem[2]};
    }
    M = M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem = ua.match(/version\/(\d+)/i))!= null)
        M.splice(1, 1, tem[1]);
    return {name:M[0], version:M[1]};
})();

console.log(navigator.browserSpecs); //Object { name: "Firefox", version: "42" }

if (navigator.browserSpecs.name == 'Firefox') {
    // Do something for Firefox.
    if (navigator.browserSpecs.version > 42) {
        // Do something for Firefox versions greater than 42.
    }
}
else {
    // Do something for all other browsers.
}

45

यहां कई प्रमुख लाइब्रेरी हैं जो मई 2019 तक ब्राउज़र डिटेक्शन को संभालती हैं।

Bowser lancedikson द्वारा - 3761 ★ रों - अंतिम अपडेट कर 26, 2019 - 4.8KB

var result = bowser.getParser(window.navigator.userAgent);
console.log(result);
document.write("You are using " + result.parsedResult.browser.name +
               " v" + result.parsedResult.browser.version + 
               " on " + result.parsedResult.os.name);
<script src="https://unpkg.com/bowser@2.4.0/es5.js"></script>

* क्रोमियम पर आधारित एज का समर्थन करता है


Platform.js द्वारा bestiejs - 2,250 ★ s - अंतिम अद्यतन 30 अक्टूबर, 2018 - 5.9KB

console.log(platform);
document.write("You are using " + platform.name +
               " v" + platform.version + 
               " on " + platform.os);
<script src="https://cdnjs.cloudflare.com/ajax/libs/platform/1.3.5/platform.min.js"></script>

gabceb द्वारा jQuery ब्राउज़र - 504 ★ s - अंतिम अपडेट 23 नवंबर, 2015 - 1.3 केबी

console.log($.browser)
document.write("You are using " + $.browser.name +
               " v" + $.browser.versionNumber + 
               " on " + $.browser.platform);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js"></script>

Darcyclarke द्वारा Detect.js (संग्रहीत) - 522 ★ s - अंतिम अपडेट 26 अक्टूबर, 2015 - 2.9KB

var result = detect.parse(navigator.userAgent);
console.log(result);
document.write("You are using " + result.browser.family +
               " v" + result.browser.version + 
               " on " + result.os.family);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Detect.js/2.2.2/detect.min.js"></script>

QuirksMode द्वारा ब्राउज़र डिटेक्ट (संग्रहीत) - अंतिम अपडेट 14 नवंबर, 2013 - 884 बी

console.log(BrowserDetect)
document.write("You are using " + BrowserDetect.browser +
               " v" + BrowserDetect.version + 
               " on " + BrowserDetect.OS);
<script src="https://kylemit.github.io/libraries/libraries/BrowserDetect.js"></script>


उल्लेखनीय उल्लेख:

  • WhichBrowser - 1,355 ★ s - अंतिम अद्यतन 2 अक्टूबर 2018
  • Modernizr - 23,397 ★ रों - अंतिम बार अपडेट 12 जनवरी, 2019 - करने के लिए एक खिलाया घोड़े फ़ीड, सुविधा का पता लगाने के लिए किसी भी ड्राइव चाहिए canIuse शैली सवाल। ब्राउज़र का पता लगाना वास्तव में केवल अनुकूलित चित्र, डाउनलोड फ़ाइलें, या व्यक्तिगत ब्राउज़र के लिए निर्देश प्रदान करने के लिए है।

आगे की पढाई


29

Bowser JavaScript लाइब्रेरी इस कार्यक्षमता प्रदान करता है।

if (bowser.msie && bowser.version <= 6) {
  alert('Hello China');
}

यह अच्छी तरह से बनाए रखा जा रहा है।


18

इसका उपयोग करें: http://www.quirksmode.org/js/detect.html

alert(BrowserDetect.browser); // will say "Firefox"
alert(BrowserDetect.version); // will say "3" or "4"

7
आउटडेटेड संदर्भ, अब समर्थित नहीं है - "इस पृष्ठ में मेरे स्वयं के ब्राउज़र का उपयोग स्क्रिप्ट का पता लगाने के लिए किया गया था, लेकिन मैंने पाया कि मेरे पास इसे अद्यतित रखने के लिए पर्याप्त समय नहीं है। इसलिए मैंने इसे हटा दिया।"
नियोलिस्क

16

मैं अपने लिए एक समाधान की तलाश कर रहा था, क्योंकि jQuery 1.9.1 और इसके बाद के संस्करण ने $.browserकार्यक्षमता को हटा दिया है । मैं इस छोटे से समारोह के साथ आया जो मेरे लिए काम करता है। यह कौन सा ब्राउज़र है यह जाँचने के लिए एक वैश्विक चर (मुझे मेरा _browser कहा जाता है) की आवश्यकता है। मैंने यह बताने के लिए एक jsfiddle लिखा है कि इसका उपयोग कैसे किया जा सकता है, निश्चित रूप से इसे अन्य ब्राउज़रों के लिए केवल _browser.foo के लिए एक परीक्षण जोड़कर विस्तारित किया जा सकता है, जहां foo ब्राउज़र का नाम है। मैंने सिर्फ लोकप्रिय किया।

detectBrowser ()

_browser = {};

function detectBrowser() {
  var uagent = navigator.userAgent.toLowerCase(),
      match = '';

  _browser.chrome  = /webkit/.test(uagent)  && /chrome/.test(uagent)      &&
                     !/edge/.test(uagent);

  _browser.firefox = /mozilla/.test(uagent) && /firefox/.test(uagent);

  _browser.msie    = /msie/.test(uagent)    || /trident/.test(uagent)     ||
                     /edge/.test(uagent);

  _browser.safari  = /safari/.test(uagent)  && /applewebkit/.test(uagent) &&
                     !/chrome/.test(uagent);

  _browser.opr     = /mozilla/.test(uagent) && /applewebkit/.test(uagent) &&
                     /chrome/.test(uagent)  && /safari/.test(uagent)      &&
                     /opr/.test(uagent);

  _browser.version = '';

  for (x in _browser) {
    if (_browser[x]) {

      match = uagent.match(
                new RegExp("(" + (x === "msie" ? "msie|edge" : x) + ")( |\/)([0-9]+)")
              );

      if (match) {
        _browser.version = match[3];
      } else {
        match = uagent.match(new RegExp("rv:([0-9]+)"));
        _browser.version = match ? match[1] : "";
      }
      break;
    }
  }
  _browser.opera = _browser.opr;
  delete _browser.opr;
}

यह जाँचने के लिए कि वर्तमान ब्राउज़र ओपेरा है या नहीं

if (_browser.opera) { // Opera specific code }

एडिट फॉर्मेट को एडिट करें , IE11 और ओपेरा / क्रोम के लिए डिटेक्शन तय करें, परिणाम से ब्राउजर के लिए बदल दिया जाए। अब _browserचाबियों का क्रम मायने नहीं रखता। अपडेटेड jsFiddle लिंक

2015/08/11 संपादित जोड़ा इंटरनेट एक्सप्लोरर 12 (ईडीजीई) के लिए नए testcase, एक छोटे से regexp समस्या तय। अपडेटेड jsFiddle लिंक


1
विंडोज 10 में नए IE एज (उर्फ स्पार्टन) के लिए यह दिखाता है कि मेरा ब्राउज़र Chrome 42 --- उपयोगकर्ता एजेंट स्ट्रिंग: mozilla / 5.0 (विंडोज़ nt 10.0; win64; x64) applewebkit / 537.36 (khtml, जैसे gecko) chrome / 42.0 .2311.135 सफारी / 537.36 किनारे / 12.10240 ब्राउज़र 42 क्रोम है
Rulisp

1
आपकी टिप्पणी के लिए धन्यवाद @Rulisp और नमूना uagent प्रदान किया, क्योंकि मेरे पास एज या Win10 नहीं है। बस इससे जा रहा है कि मैं jsFiddle में कोड को प्रतिबिंबित करने के लिए अद्यतन किया है। यदि आप उस नमूने के साथ परीक्षण करना चाहते हैं जो आपने मुझे दिया था तो मुझे इस फिडल में जाना चाहिए । अगर कुछ गड़बड़ है तो मुझे बताएं।
डेनियल गैबेंस्की

13
function BrowserCheck()
{
    var N= navigator.appName, ua= navigator.userAgent, tem;
    var M= ua.match(/(opera|chrome|safari|firefox|msie|trident)\/?\s*(\.?\d+(\.\d+)*)/i);
    if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) {M[2]=tem[1];}
    M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
    return M;
}

यह एक सरणी लौटाएगा, पहला तत्व ब्राउज़र नाम है, दूसरा तत्व स्ट्रिंग प्रारूप में पूर्ण संस्करण संख्या है।


9

jQuery इस काफी अच्छा संभाल सकते हैं ( jQuery.browser )

var ua = $.browser;
if ( ua.mozilla && ua.version.slice(0,3) == "1.9" ) {
    alert( "Do stuff for firefox 3" );
}

EDIT: जैसा कि जोशुआ ने अपनी टिप्पणी में लिखा है, jQuery.browser संपत्ति अब संस्करण 1.9 के बाद से jQuery में समर्थित नहीं है ( अधिक विवरण के लिए jQuery 1.9 रिलीज़ नोट पढ़ें )। jQuery डेवलपमेंट टीम मॉडर्निज़्र लाइब्रेरी के साथ UI को एडॉप्ट करने जैसे अधिक संपूर्ण दृष्टिकोण का उपयोग करने की सलाह देती है


16
jQuery 1.9 ने $ .browser समर्थन हटा दिया है, इसलिए यह अब कोई विकल्प नहीं है।
जोशुआ

यहोशू - हाँ, आप सही हैं; कम से कम उन्होंने कुछ सुविधाओं के लिए ब्राउज़र समर्थन का पता लगाने के लिए jQuery.support संपत्ति छोड़ दी (लेकिन मुझे यकीन नहीं है कि अगर यह प्रारंभिक सवाल है)
मारेक

7

शुद्ध जावास्क्रिप्ट में आप navigator.userAgentफ़ायरफ़ॉक्स संस्करण को खोजने के लिए एक RegExp मैच कर सकते हैं :

var uMatch = navigator.userAgent.match(/Firefox\/(.*)$/),
    ffVersion;
if (uMatch && uMatch.length > 1) {
    ffVersion = uMatch[1];
}

ffVersionundefinedअगर फ़ायरफ़ॉक्स ब्राउज़र नहीं होगा ।

काम का उदाहरण देखें →


4

देखो navigator.userAgent- Firefox/xxx.xxx.xxxअंत में सही निर्दिष्ट है।


4
<script type="text/javascript">
var version = navigator.appVersion;
alert(version);
</script>

4

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

function getBrowserData(nav) {
    var data = {};

    var ua = data.uaString = nav.userAgent;
    var browserMatch = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i) || [];
    if (browserMatch[1]) { browserMatch[1] = browserMatch[1].toLowerCase(); }
    var operaMatch = browserMatch[1] === 'chrome';
    if (operaMatch) { operaMatch = ua.match(/\bOPR\/([\d\.]+)/); }

    if (/trident/i.test(browserMatch[1])) {
        var msieMatch = /\brv[ :]+([\d\.]+)/g.exec(ua) || [];
        data.name = 'msie';
        data.version = msieMatch[1];
    }
    else if (operaMatch) {
        data.name = 'opera';
        data.version = operaMatch[1];
    }
    else if (browserMatch[1] === 'safari') {
        var safariVersionMatch = ua.match(/version\/([\d\.]+)/i);
        data.name = 'safari';
        data.version = safariVersionMatch[1];
    }
    else {
        data.name = browserMatch[1];
        data.version = browserMatch[2];
    }

    var versionParts = [];
    if (data.version) {
        var versionPartsMatch = data.version.match(/(\d+)/g) || [];
        for (var i=0; i < versionPartsMatch.length; i++) {
            versionParts.push(versionPartsMatch[i]);
        }
        if (versionParts.length > 0) { data.majorVersion = versionParts[0]; }
    }
    data.name = data.name || '(unknown browser name)';
    data.version = {
        full: data.version || '(unknown full browser version)',
        parts: versionParts,
        major: versionParts.length > 0 ? versionParts[0] : '(unknown major browser version)'
    };

    return data;
};

यह तो इस तरह इस्तेमाल किया जा सकता है:

var brData = getBrowserData(window.navigator || navigator);
console.log('name: ' + brData.name);
console.log('major version: ' + brData.version.major);
// etc.

3
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera, the true version is after "Opera" or after "Version"

if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1)
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent

else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome"

else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version"

else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1)
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox"

else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent

else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <
          (verOffset=nAgt.lastIndexOf('/')) )
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}

// trim the fullVersion string at semicolon/space if present

if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion);
 majorVersion = parseInt(navigator.appVersion,10);
}

document.write(''
 +'Browser name  = '+browserName+'<br>'
 +'Full version  = '+fullVersion+'<br>'
 +'Major version = '+majorVersion+'<br>'
 +'navigator.appName = '+navigator.appName+'<br>'
 +'navigator.userAgent = '+navigator.userAgent+'<br>'
)

यहां देखें डेमो .. http://jsfiddle.net/hw4jM/3/


2

मैंने ब्राउज़र, ब्राउज़र संस्करण, OS और OS संस्करण का पता लगाने के लिए ASP कोड में एक स्क्रिप्ट बनाई है। मुझे एएसपी में ऐसा करने का कारण यह था कि मैं डेटा को लॉग-डेटाबेस में संग्रहीत करना चाहता हूं। इसलिए मुझे ब्राउज़र सर्वरसाइड का पता लगाना था।

यहाँ कोड है:

on error resume next
ua = lcase(Request.ServerVariables("HTTP_USER_AGENT"))
moz = instr(ua,"mozilla")  
ffx = instr(ua,"firefox")  
saf = instr(ua,"safari")
crm = instr(ua,"chrome") 
max = instr(ua,"maxthon") 
opr = instr(ua,"opera")
ie4 = instr(ua,"msie 4") 
ie5 = instr(ua,"msie 5") 
ie6 = instr(ua,"msie 6") 
ie7 = instr(ua,"msie 7") 
ie8 = instr(ua,"trident/4.0")
ie9 = instr(ua,"trident/5.0")

if moz>0 then 
    BrowserType = "Mozilla"
    BrVer = mid(ua,moz+8,(instr(moz,ua," ")-(moz+8)))
end if
if ffx>0 then 
    BrowserType = "FireFox"
    BrVer = mid(ua,ffx+8)
end if
if saf>0 then 
    BrowserType = "Safari"
    BrVerPlass = instr(ua,"version")
    BrVer = mid(ua,BrVerPlass+8,(instr(BrVerPlass,ua," ")-(BrVerPlass+8)))
end if
if crm>0 then 
    BrowserType = "Chrome"
    BrVer = mid(ua,crm+7,(instr(crm,ua," ")-(crm+7)))
end if
if max>0 then 
    BrowserType = "Maxthon"
    BrVer = mid(ua,max+8,(instr(max,ua," ")-(max+8)))
end if
if opr>0 then 
    BrowserType = "Opera"
    BrVerPlass = instr(ua,"presto")
    BrVer = mid(ua,BrVerPlass+7,(instr(BrVerPlass,ua," ")-(BrVerPlass+7)))
end if
if ie4>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "4"
end if
if ie5>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "5"
end if
if ie6>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "6"
end if
if ie7>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "7"
end if
if ie8>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "8"
    if ie7>0 then BrVer = BrVer & " (in IE7 compability mode)"
end if
if ie9>0 then 
    BrowserType = "Internet Explorer"
    BrVer = "9"
    if ie7>0 then BrVer = BrVer & " (in IE7 compability mode)"
    if ie8>0 then BrVer = BrVer & " (in IE8 compability mode)"
end if

OSSel = mid(ua,instr(ua,"(")+1,(instr(ua,";")-instr(ua,"("))-1)
OSver = mid(ua,instr(ua,";")+1,(instr(ua,")")-instr(ua,";"))-1)

if BrowserType = "Internet Explorer" then
    OSStart = instr(ua,";")
    OSStart = instr(OSStart+1,ua,";")        
    OSStopp = instr(OSStart+1,ua,";")
    OSsel = mid(ua,OSStart+2,(OSStopp-OSStart)-2)
end if

    Select case OSsel
        case "windows nt 6.1"
            OS = "Windows"
            OSver = "7"
        case "windows nt 6.0"
            OS = "Windows"
            OSver = "Vista"
        case "windows nt 5.2"
            OS = "Windows"
            OSver = "Srv 2003 / XP x64"
        case "windows nt 5.1"
            OS = "Windows"
            OSver = "XP"
        case else
            OS = OSSel
    End select

Response.write "<br>" & ua & "<br>" & BrowserType & "<br>" & BrVer & "<br>" & OS & "<br>" & OSver & "<br>"

'Use the variables here for whatever you need........

2

इस पृष्ठ में एक बहुत अच्छा स्निपेट लगता है जो केवल एक अंतिम उपाय के रूप में appString और appVersion संपत्ति का उपयोग करता है क्योंकि यह उन्हें कुछ ब्राउज़रों के साथ अविश्वसनीय होने का दावा करता है। पृष्ठ पर कोड इस प्रकार है:

var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera 15+, the true version is after "OPR/" 
if ((verOffset=nAgt.indexOf("OPR/"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+4);
}
// In older Opera, the true version is after "Opera" or after "Version"
else if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
          (verOffset=nAgt.lastIndexOf('/')) ) 
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion); 
 majorVersion = parseInt(navigator.appVersion,10);
}

document.write(''
 +'Browser name  = '+browserName+'<br>'
 +'Full version  = '+fullVersion+'<br>'
 +'Major version = '+majorVersion+'<br>'
 +'navigator.appName = '+navigator.appName+'<br>'
 +'navigator.userAgent = '+navigator.userAgent+'<br>'
)

2

हर्मन के उत्तर के अपने कार्यान्वयन को जोड़ना। मुझे OS का पता लगाने की आवश्यकता है इसलिए इसे जोड़ा गया है। इसमें कुछ ES6 कोड भी शामिल हैं (क्योंकि हमारे पास एक ट्रांसपिलर है) जिसे आपको ES5-ify की आवश्यकता हो सकती है।

detectClient() {
    let nav = navigator.appVersion,
        os = 'unknown',
        client = (() => {
            let agent = navigator.userAgent,
                engine = agent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [],
                build;

            if(/trident/i.test(engine[1])){
                build = /\brv[ :]+(\d+)/g.exec(agent) || [];
                return {browser:'IE', version:(build[1] || '')};
            }

            if(engine[1] === 'Chrome'){
                build = agent.match(/\bOPR\/(\d+)/);

                if(build !== null) {
                    return {browser: 'Opera', version: build[1]};
                }
            }

            engine = engine[2] ? [engine[1], engine[2]] : [navigator.appName, nav, '-?'];

            if((build = agent.match(/version\/(\d+)/i)) !== null) {
                engine.splice(1, 1, build[1]);
            }

            return {
              browser: engine[0],
              version: engine[1]
            };
        })();

    switch (true) {
        case nav.indexOf('Win') > -1:
            os = 'Windows';
        break;
        case nav.indexOf('Mac') > -1:
            os = 'MacOS';
        break;
        case nav.indexOf('X11') > -1:
            os = 'UNIX';
        break;
        case nav.indexOf('Linux') > -1:
            os = 'Linux';
        break;
    }        

    client.os = os;
    return client;
}

यह दिखाता है: Object {browser: "Chrome", version: "50", os: "UNIX"}


2

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

ऐसा लगता है कि यह कोड अन्य उत्तरों के समान है, लेकिन इसे संशोधित किया गया है ताकि मैं इसे ब्राउज़र ऑब्जेक्ट का उपयोग कर सकूं jquery में जो हाल ही में मेरे लिए याद आया, निश्चित रूप से यह उपरोक्त कोड से एक संयोजन है, जिसमें से थोड़ा सुधार हुआ है। मेरा हिस्सा मैंने बनाया:

(function($, ua){

var M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [],
    tem, 
    res;

if(/trident/i.test(M[1])){
    tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
    res = 'IE ' + (tem[1] || '');
}
else if(M[1] === 'Chrome'){
    tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
    if(tem != null) 
        res = tem.slice(1).join(' ').replace('OPR', 'Opera');
    else
        res = [M[1], M[2]];
}
else {
    M = M[2]? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
    if((tem = ua.match(/version\/(\d+)/i)) != null) M = M.splice(1, 1, tem[1]);
    res = M;
}

res = typeof res === 'string'? res.split(' ') : res;

$.browser = {
    name: res[0],
    version: res[1],
    msie: /msie|ie/i.test(res[0]),
    firefox: /firefox/i.test(res[0]),
    opera: /opera/i.test(res[0]),
    chrome: /chrome/i.test(res[0]),
    edge: /edge/i.test(res[0])
}

})(typeof jQuery != 'undefined'? jQuery : window.$, navigator.userAgent);

 console.log($.browser.name, $.browser.version, $.browser.msie); 
// if IE 11 output is: IE 11 true

2

navigator.sayswho= (function(){
    var ua= navigator.userAgent, tem, 
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
        return 'IE '+(tem[1] || '');
    }
    if(M[1]=== 'Chrome'){
        tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
    }
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
    return M.join(' ');
})();

console.log(navigator.sayswho); // outputs: `Chrome 62`


1

मैं इसका उपयोग वास्तविक ब्राउज़र के संस्करण का नाम और संख्या (इंट) प्राप्त करने के लिए करता हूं:

function getInfoBrowser() {
    var ua = navigator.userAgent, tem,
    M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if (/trident/i.test(M[1])) {
        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
        return { name: 'Explorer', version: parseInt((tem[1] || '')) };
    }
    if (M[1] === 'Chrome') {
        tem = ua.match(/\b(OPR|Edge)\/(\d+)/);
        if (tem != null) { let app = tem.slice(1).toString().split(','); return { name: app[0].replace('OPR', 'Opera'), version: parseInt(app[1]) }; }
    }
    M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
    if ((tem = ua.match(/version\/(\d+)/i)) != null) M.splice(1, 1, tem[1]);
    return {
        name: M[0],
        version: parseInt(M[1])
    };
}

function getBrowser(){
  let info = getInfoBrowser();
  $("#i-name").html(info.name);
  $("#i-version").html(info.version);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="button" onclick="getBrowser();" value="Get Info Browser"/>
<hr/>
Name: <span id="i-name"></span><br/>
Version: <span id="i-version"></span>

यह अंदर चला

क्रोम; फ़ायरफ़ॉक्स; सफारी ; इंटरनेट एक्सप्लोरर (> = 9); ओपेरा; धार

मेरे लिए।


1

यहाँ यह बेहतर संगतता है तो @kennebec स्निपेट;
ब्राउज़र का नाम और संस्करण लौटाएगा (72.0.3626.96 के बदले 72)।

सफारी, क्रोम, ओपेरा, फ़ायरफ़ॉक्स, IE, एज, UCBrowser पर भी मोबाइल पर परीक्षण किया गया।

function browser() {
    var userAgent = navigator.userAgent,
        match = userAgent.match(/(opera|chrome|crios|safari|ucbrowser|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [],
        result = {},
        tem;

    if (/trident/i.test(match[1])) {
        tem = /\brv[ :]+(\d+)/g.exec(userAgent) || [];
        result.name = "Internet Explorer";
    } else if (match[1] === "Chrome") {
        tem = userAgent.match(/\b(OPR|Edge)\/(\d+)/);

        if (tem && tem[1]) {
            result.name = tem[0].indexOf("Edge") === 0 ? "Edge" : "Opera";
        }
    }
    if (!result.name) {
        tem = userAgent.match(/version\/(\d+)/i); // iOS support
        result.name = match[0].replace(/\/.*/, "");

        if (result.name.indexOf("MSIE") === 0) {
            result.name = "Internet Explorer";
        }
        if (userAgent.match("CriOS")) {
            result.name = "Chrome";
        }

    }
    if (tem && tem.length) {
        match[match.length - 1] = tem[tem.length - 1];
    }

    result.version = Number(match[match.length - 1]);

    return result;
}

0
var ua = navigator.userAgent;

if (/Firefox\//.test(ua))
   var Firefox = /Firefox\/([0-9\.A-z]+)/.exec(ua)[1];

0

मैंने अपनी जरूरतों के लिए यह लिखा था।

यह जानकारी प्राप्त करता है जैसे कि मोबाइल डिवाइस है या यदि रेटिना डिस्प्ले है

कोशिश करो

var nav = {
        isMobile:function(){
            return (navigator.userAgent.match(/iPhone|iPad|iPod|Android|BlackBerry|Opera Mini|IEMobile/i) != null);
        },
        isDesktop:function(){
            return (navigator.userAgent.match(/iPhone|iPad|iPod|Android|BlackBerry|Opera Mini|IEMobile/i) == null);
        },
        isAndroid: function() {
            return navigator.userAgent.match(/Android/i);
        },
        isBlackBerry: function() {
            return navigator.userAgent.match(/BlackBerry/i);
        },
        isIOS: function() {
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        },
        isOpera: function() {
            return navigator.userAgent.match(/Opera Mini/i);
        },
        isWindows: function() {
            return navigator.userAgent.match(/IEMobile/i);
        },
        isRetina:function(){
            return window.devicePixelRatio && window.devicePixelRatio > 1;
        },
        isIPad:function(){
            isIPad = (/ipad/gi).test(navigator.platform);
            return isIPad;
        },
        isLandscape:function(){
            if(window.innerHeight < window.innerWidth){
                return true;
            }
            return false;
        },
        getIOSVersion:function(){
            if(this.isIOS()){
                var OSVersion = navigator.appVersion.match(/OS (\d+_\d+)/i);
                OSVersion = OSVersion[1] ? +OSVersion[1].replace('_', '.') : 0;
                return OSVersion;
            }
            else
                return false;
        },
        isStandAlone:function(){
            if(_.is(navigator.standalone))
                return navigator.standalone;
            return false;
        },
        isChrome:function(){
            var isChrome = (/Chrome/gi).test(navigator.appVersion);
            var isSafari = (/Safari/gi).test(navigator.appVersion)
            return isChrome && isSafari;
        },
        isSafari:function(){
            var isSafari = (/Safari/gi).test(navigator.appVersion)
            var isChrome = (/Chrome/gi).test(navigator.appVersion)
            return !isChrome && isSafari;
        }
}

0

किसी भी PWA अनुप्रयोग के लिए कोणीय का उपयोग करके आप यह पता लगाने के लिए कोड डाल सकते हैं कि क्या ब्राउजर समर्थित है या नहीं।

<body>
    <div id="browser"></div>
    <script>
        var operabrowser = true;
        operabrowser = (navigator.userAgent.indexOf('Opera Mini') > -1);
        if (operabrowser) {
            txt = "<p>Browser not supported use different browser...</p>";
            document.getElementById("browser").innerHTML = txt;
        }
    </script>
</body>

-1

यहाँ somemone के लिए जावा संस्करण है, जो स्ट्रिंग द्वारा उपयोग किए गए सर्वर साइड पर करना पसंद करता है HttpServletRequest.getHeader("User-Agent");

यह परीक्षण के लिए उपयोग किए जाने वाले 70 विभिन्न ब्राउज़र कॉन्फ़िगरेशन पर काम कर रहा है।

public static String decodeBrowser(String userAgent) {
    userAgent= userAgent.toLowerCase();
    String name = "unknown";
    String version = "0.0";
    Matcher userAgentMatcher = USER_AGENT_MATCHING_PATTERN.matcher(userAgent);
    if (userAgentMatcher.find()) {
      name = userAgentMatcher.group(1);
      version = userAgentMatcher.group(2);
      if ("trident".equals(name)) {
        name = "msie";
        Matcher tridentVersionMatcher = TRIDENT_MATCHING_PATTERN.matcher(userAgent);
        if (tridentVersionMatcher.find()) {
          version = tridentVersionMatcher.group(1);
        }
      }
    }
    return name + " " + version;
  }

  private static final Pattern USER_AGENT_MATCHING_PATTERN=Pattern.compile("(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*([\\d\\.]+)");
  private static final Pattern TRIDENT_MATCHING_PATTERN=Pattern.compile("\\brv[ :]+(\\d+(\\.\\d+)?)");

-1
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName = navigator.appName;
var fullVersion = '' + parseFloat(navigator.appVersion);
var majorVersion = parseInt(navigator.appVersion, 10);
var nameOffset, verOffset, ix;

// In Opera 15+, the true version is after "OPR/" 
if ((verOffset = nAgt.indexOf("OPR/")) != -1) {
    browserName = "Opera";
    fullVersion = nAgt.substring(verOffset + 4);
}
// In older Opera, the true version is after "Opera" or after "Version"
else if ((verOffset = nAgt.indexOf("Opera")) != -1) {
    browserName = "Opera";
    fullVersion = nAgt.substring(verOffset + 6);
    if ((verOffset = nAgt.indexOf("Version")) != -1)
        fullVersion = nAgt.substring(verOffset + 8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset = nAgt.indexOf("MSIE")) != -1) {
    browserName = "Microsoft Internet Explorer";
    fullVersion = nAgt.substring(verOffset + 5);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
    browserName = "Google Chrome";
    fullVersion = nAgt.substring(verOffset + 7);
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
    browserName = "Safari";
    fullVersion = nAgt.substring(verOffset + 7);
    if ((verOffset = nAgt.indexOf("Version")) != -1)
        fullVersion = nAgt.substring(verOffset + 8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
    browserName = "Mozilla Firefox";
    fullVersion = nAgt.substring(verOffset + 8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
    browserName = nAgt.substring(nameOffset, verOffset);
    fullVersion = nAgt.substring(verOffset + 1);
    if (browserName.toLowerCase() == browserName.toUpperCase()) {
        browserName = navigator.appName;
    }
}
// trim the fullVersion string at semicolon/space if present
if ((ix = fullVersion.indexOf(';')) != -1) fullVersion = fullVersion.substring(0, ix);
if ((ix = fullVersion.indexOf(' ')) != -1) fullVersion = fullVersion.substring(0, ix);

majorVersion = parseInt('' + fullVersion, 10);
if (isNaN(majorVersion)) {
    fullVersion = '' + parseFloat(navigator.appVersion);
    majorVersion = parseInt(navigator.appVersion, 10);
}

2
क्या आप कृपया कोड के साथ अपने कोड का कुछ विवरण डाल सकते हैं?
योगेश शर्मा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.