जावास्क्रिप्ट का उपयोग करके अपने ब्राउज़र संस्करण और ऑपरेटिंग सिस्टम का पता कैसे लगाएं?


113

मैंने नीचे दिए गए कोड का उपयोग करने की कोशिश की है, लेकिन यह केवल IE6 में क्रोम और मोज़िला में काम नहीं करने वाले परिणाम प्रदर्शित करता है।

<div id="example"></div>

<script type="text/javascript">

txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";

document.getElementById("example").innerHTML=txt;

</script>

आउटपुट:

Browser CodeName: Mozilla

Browser Name: Netscape

Browser Version: 5.0 (Windows)

Cookies Enabled: true

Platform: Win32

User-agent header: Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0

मुझे केवल "फ़ायरफ़ॉक्स / 12.0" संस्करण प्राप्त करने की आवश्यकता है।


3
quirksmode.org/js/detect.html कृपया इसकी जांच करें एक बार यह आपकी मदद कर सकता है ..
जलप्रेश पटेल

अतिरिक्त प्रासंगिक उत्तर इस पर मिल सकते हैं और यह 'लगभग' ड्यूप्स
मैथिज्स वेसल्स

इस लिंक से मेरे उत्तर की जाँच करें ( stackoverflow.com/questions/9847580/… )
मलकी मोहम्मद

जवाबों:


167

ब्राउज़र के विवरण का पता लगाना:

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>'
)

स्रोत जावास्क्रिप्ट: ब्राउज़र नाम
ब्राउज़र विवरण का पता लगाने के लिए JSFiddle देखें

OS का पता लगाना:

// This script sets OSName variable as follows:
// "Windows"    for all versions of Windows
// "MacOS"      for all versions of Macintosh OS
// "Linux"      for all versions of Linux
// "UNIX"       for all other UNIX flavors 
// "Unknown OS" indicates failure to detect the OS

var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";

document.write('Your OS: '+OSName);

स्रोत जावास्क्रिप्ट: ओएस का पता लगाने
OS विवरण का पता लगाने के लिए JSFiddle देखें


1
क्या आप जानते हैं कि मुझे कहां-कहां सभी संभव मूल्य मिल सकते हैं? अच्छी तरह से सभी संभव ओएस मान जो एपवर्जन का उपयोग करता है?
जॉन ओडोम

3
@ जॉनऑइड नई प्रणाली, (आगामी स्टीम बॉक्स जैसे) में शायद अपने स्वयं के नाम हैं; और मौजूदा सिस्टम अपना नाम या आशुलिपि बदल सकते हैं। जब तक आप उस जानकारी को प्राप्त करने के लिए किसी प्रकार के वैश्विक डेटाबेस का उपयोग नहीं करेंगे, तब तक आप अप-टू-डेट नहीं होंगे; चूंकि यह पूरी तरह से मालिकाना है। हो सकता है कि किसी दिन, Google, W3 इत्यादि क्राउडसोर्स के लिए एक एपीआई की पेशकश करेंगे और सार्वजनिक रूप से सभी विभिन्न सिस्टम नामों और उनके संबंधों को उपलब्ध कराएंगे जो वे अपने उपयोगकर्ताओं से इकट्ठा करते हैं।
डोमी

1
verOffset = nAgt.indexOf ( "ओपेरा")) = - 1। यह ओपेरा 20 और इसके बाद के संस्करण के लिए काम नहीं करेगा।
parth.hirpara

2
एज का पता लगाने में असमर्थ।
मोहन सिंह

1
यह जावास्क्रिप्ट तारीख से बाहर है। रिपोर्ट्स एज और IE 11 को "नेटस्केप 5" के रूप में। की तरह इस कार्यक्षमता के लिए एक बनाए रखा लाइब्रेरी का उपयोग कर सुझाएँ github.com/faisalman/ua-parser-js
जेम्स Boutcher

20

मुझे यह कहते हुए दुख हो रहा है: हम इस पर भाग्य से श * त हैं।

मैं आपको WhBrowser के लेखक के बारे में बताना चाहता हूँ : हर कोई झूठ बोलता है

मूल रूप से, कोई भी ब्राउज़र ईमानदार नहीं हो रहा है। कोई फर्क नहीं पड़ता कि आप क्रोम या IE का उपयोग करते हैं, वे दोनों आपको बताएंगे कि वे गेको और सफारी समर्थन के साथ "मोज़िला नेटस्केप" हैं। इस धागे में इधर-उधर उड़ने वाली किसी भी फ़िदेल पर स्वयं आज़माएँ:

hims056 की बेला

हरिहरन की बेला

या कोई अन्य ... इसे Chrome के साथ आज़माएं (जो अभी भी सफल हो सकता है), फिर इसे IE के हाल के संस्करण के साथ आज़माएँ, और आप रोएँगे। बेशक, वहाँ आंकड़े हैं, यह सब ठीक करने के लिए, लेकिन यह सभी किनारे के मामलों को समझने के लिए थकाऊ होगा, और वे एक साल के समय में काम नहीं करेंगे।

उदाहरण के लिए, अपना कोड लें:

<div id="example"></div>
<script type="text/javascript">
txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";
document.getElementById("example").innerHTML=txt;
</script>

Chrome कहता है:

ब्राउज़र कोडनाम: मोज़िला

ब्राउज़र का नाम: नेटस्केप

ब्राउज़र संस्करण: 5.0 (विंडोज NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, जैसे गेको) क्रोम / 40.0.2214.115 सफारी / 537.36

कुकीज़ सक्षम: सच

प्लेटफ़ॉर्म: Win32

उपयोगकर्ता-एजेंट हेडर: मोज़िला / 5.0 (विंडोज NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, जैसे गेको) क्रोम / 40.0.2214.115 सफारी / 537.36

IE कहता है:

ब्राउज़र कोडनाम: मोज़िला

ब्राउज़र का नाम: नेटस्केप

ब्राउज़र संस्करण: 5.0 (Windows NT 6.1; WOW64; त्रिशूल / 7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; मीडिया सेंटर PC 6.0; .NET4.0C; .NET4; .0E; InfoPath.3; rv: 11.0) गेको की तरह

कुकीज़ सक्षम: सच

प्लेटफ़ॉर्म: Win32

उपयोगकर्ता-एजेंट हेडर: मोज़िला / 5.0 (विंडोज NT 6.1; WOW64; त्रिशूल / 7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; मीडिया सेंटर PC 6.0; NET4)। 0C; .NET4.0E; InfoPath.3; rv: 11.0) गेको की तरह

कम से कम क्रोम में अभी भी एक स्ट्रिंग है जिसमें सटीक संस्करण संख्या के साथ "क्रोम" है। लेकिन, IE के लिए, आपको उन चीजों से अतिरिक्त रूप से अलग करना होगा जो वास्तव में यह पता लगाने के लिए समर्थन करती हैं कि (और कौन घमंड करेगा कि वे समर्थन करते हैं .NETया Media Center: P), और फिर rv:संस्करण संख्या प्राप्त करने के लिए इसे बहुत अंत में मैच करें । बेशक, इस तरह के परिष्कृत उत्तराधिकार भी IE 12 (या जो भी वे इसे कॉल करना चाहते हैं) के रूप में जल्द ही विफल हो सकते हैं।


2
ओपेरा ब्राउज़र के लिए इसका प्रदर्शन क्रोम।
राजकिशोर साहू

उन गुणों में से कुछ को "पिछड़े संगतता के लिए रखा गया है", उदाहरण के लिए सभी ब्राउज़र "नेटस्केप" को वापस कर देंगे navigator.appNameडेवलपर.
mozilla.org/en-US/docs/Web/API/NavigatorID

18

इस उद्देश्य के लिए एक पुस्तकालय है: https://github.com/bestiejs/platform.js#readme

फिर आप इसे इस तरह से इस्तेमाल कर सकते हैं

// example 1
platform.os; // 'Windows Server 2008 R2 / 7 x64'

// example 2 on an iPad
platform.os; // 'iOS 5.0'

// you can also access on the browser and some other properties
platform.name; // 'Safari'
platform.version; // '5.1'
platform.product; // 'iPad'
platform.manufacturer; // 'Apple'
platform.layout; // 'WebKit'

// or use the description to put all together
platform.description; // 'Safari 5.1 on Apple iPad (iOS 5.0)'

1
ध्यान दें कि यहाँ उत्तर में गीथूब-लाइब्रेरी के सभी लिंक से, यह लाइब्रेरी सबसे अद्यतित प्रतीत होती है (मई 2018 में लेखन, अंतिम प्रतिबद्ध '3 महीने पहले' के साथ)
Ideogram

12

जावास्क्रिप्ट का उपयोग कर ऑपरेटिंग सिस्टम का पता लगाने के लिए navigator.userAgent का उपयोग करना बेहतर है बजाय navigator.appVersion के

{
  var OSName = "Unknown OS";
  if (navigator.userAgent.indexOf("Win") != -1) OSName = "Windows";
  if (navigator.userAgent.indexOf("Mac") != -1) OSName = "Macintosh";
  if (navigator.userAgent.indexOf("Linux") != -1) OSName = "Linux";
  if (navigator.userAgent.indexOf("Android") != -1) OSName = "Android";
  if (navigator.userAgent.indexOf("like Mac") != -1) OSName = "iOS";
  console.log('Your OS: ' + OSName);
}


1
Upvoting। इसके अलावा, यह बहुत उपयोगी होगा यदि आप बता सकते हैं कि वास्तव में इसका बेहतर क्यों है :) इसके अलावा, ऐसा लगता है कि 'UNIX / X11' छूट गया है।
सिस्टम रीबूटर

@SystemsRebooter टिप्पणी के लिए धन्यवाद आप उन्हें दूसरों के रूप में जोड़ सकते हैं।
निस्सल एडू

1
महान जवाब, यह बहुत मददगार था
जेरेमी बैडर

9

पीपीके की स्क्रिप्ट इस तरह की चीजों के लिए अधिकार है, जैसा @ जल्पेश ने कहा, यह आपको सही तरीके से इंगित कर सकता है

var wn = window.navigator,
        platform = wn.platform.toString().toLowerCase(),
        userAgent = wn.userAgent.toLowerCase(),
        storedName;

// ie
    if (userAgent.indexOf('msie',0) !== -1) {
        browserName = 'ie';
        os = 'win';
        storedName = userAgent.match(/msie[ ]\d{1}/).toString();
        version = storedName.replace(/msie[ ]/,'');

        browserOsVersion = browserName + version;
    }

Https://github.com/leopic/jquery.detectBrowser.js/blob/sans-jquery/jquery.detectBrowser.sansjQuery.js से लिया गया


2

इसको आजमाओ..

// Browser with version  Detection
navigator.sayswho= (function(){
    var N= navigator.appName, ua= navigator.userAgent, tem;
    var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\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;
})();

var browser_version          = navigator.sayswho;
alert("Welcome to " + browser_version);

बाहर काम कर रहे बेला की जाँच करें ( यहाँ )


2

फ़ायरफ़ॉक्स, क्रोम, ओपेरा, इंटरनेट एक्सप्लोरर और सफारी के लिए

var ua="Mozilla/1.22 (compatible; MSIE 10.0; Windows 3.1)";
//ua = navigator.userAgent;
var b;
var browser;
if(ua.indexOf("Opera")!=-1) {

    b=browser="Opera";
}
if(ua.indexOf("Firefox")!=-1 && ua.indexOf("Opera")==-1) {
    b=browser="Firefox";
    // Opera may also contains Firefox
}
if(ua.indexOf("Chrome")!=-1) {
    b=browser="Chrome";
}
if(ua.indexOf("Safari")!=-1 && ua.indexOf("Chrome")==-1) {
    b=browser="Safari";
    // Chrome always contains Safari
}

if(ua.indexOf("MSIE")!=-1 && (ua.indexOf("Opera")==-1 && ua.indexOf("Trident")==-1)) {
    b="MSIE";
    browser="Internet Explorer";
    //user agent with MSIE and Opera or MSIE and Trident may exist.
}

if(ua.indexOf("Trident")!=-1) {
    b="Trident";
    browser="Internet Explorer";
}

// now for version


var version=ua.match(b+"[ /]+[0-9]+(.[0-9]+)*")[0];

console.log("broswer",browser);
console.log("version",version);

4
इसे क्रोम में कंसोल में जोड़ें और "सफारी / 537.36" मिला
डैनियल_मैडेन

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

1

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

let os, osStore, bStore, appVersion, browser;
// Chrome
if(navigator.vendor === "Google Inc."){
    appVersion = navigator.appVersion.split(" ");
    os = [appVersion[1],appVersion[2],appVersion[3],appVersion[4],appVersion[5]].join(" ");
    os = os.split("(")[1].split(")")[0]
    browser = appVersion[appVersion.length-2].split("/").join(" ");
    console.log("Browser:",browser,"- OS:",os);
}

// Safari
else if(navigator.vendor === "Apple Computer, Inc."){
    appVersion = navigator.appVersion.split(" ");
    os = [appVersion[1],appVersion[2],appVersion[3],appVersion[4],appVersion[5]].join(" ");
    os = os.split("(")[1].split(")")[0];
    browser = appVersion[appVersion.length-1].split("/").join(" ");
    console.log("Browser:",browser,"- OS:",os);
}

// Firefox is seems the only browser with oscpu
else if(navigator.oscpu){
    bStore = navigator.userAgent.split("; ").join("-").split(" ");
    browser = bStore[bStore.length-1].replace("/"," ");
    osStore = [bStore[1],bStore[2],bStore[3]].join(" ");
    osStore = osStore.split("-");
    osStore.pop(osStore.lastIndexOf)
    osStore = osStore.join(" ").split("(");
    os = osStore[1];
    console.log("Browser:",browser,"- OS:",os);
}

// IE is seems the only browser with cpuClass
// MSIE 11:10 Mode
else if(navigator.appName === "Microsoft Internet Explorer"){
    bStore = navigator.appVersion.split("; ");
    browser = bStore[1]+" / "+bStore[4].replace("/"," ");
    os = [bStore[2],bStore[3]].join(" ");
    console.log("Browser:",browser,"- OS:",os);
}

// MSIE 11
else if(navigator.cpuClass){
    bStore = navigator.appVersion.split("; ");
    osStore = [bStore[0],bStore[1]].join(" ");
    os = osStore.split("(")[1];
    browser = "MSIE 11 "+bStore[2].split("/").join(" ");
    console.log("Browser:",browser,"- OS:",os);
}

// Edge
else if(navigator.appVersion){
    browser = navigator.appVersion.split(" ");
    browser = browser[browser.length -1].split("/").join(" ");
    os = navigator.appVersion.split(")")[0].split("(")[1];
    console.log("Browser:",browser,"- OS:",os);
}

// Other browser
else {
    console.log(JSON.stringify(navigator));
}

0

किसी उपयोगकर्ता के ऑपरेटिंग सिस्टम का पता लगाने के लिए कोड

let os = navigator.userAgent.slice(13).split(';')
os = os[0]
console.log(os)
Windows NT 10.0

0

मोजिला कोर ऐड के आधार पर नया माइक्रोसॉफ्ट एज पाने के लिए:

else if ((verOffset=nAgt.indexOf("Edg"))!=-1) {
 browserName = "Microsoft Edge";
 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);
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.