জাভাস্ক্রিপ্ট ব্যবহার করে কীভাবে আমার ব্রাউজার সংস্করণ এবং অপারেটিং সিস্টেম সনাক্ত করবেন?


113

আমি নীচের কোডটি ব্যবহার করার চেষ্টা করেছি তবে এটি কেবল ক্রোম এবং মজিলা আই 6-তে কাজ না করার ফলাফল প্রদর্শন করে।

<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 দয়া করে একবার এটি পরীক্ষা করে দেখুন এটি আপনাকে সাহায্য করতে পারে ..
জলপেশ প্যাটেল

অতিরিক্ত প্রাসঙ্গিক উত্তর পাওয়া যাবে এই এবং এই 'প্রায়' dupes
Matthijs ওয়েসেলস

আমার উত্তরটি এই লিঙ্কটি থেকে দেখুন ( স্ট্যাকওভারফ্লো.com / জিজ্ঞাসা / 84৮৮৫75০৮০/২ )
মালকি মোহাম্মদ

উত্তর:


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

উত্স জাভাস্ক্রিপ্ট: ব্রাউজার নাম
ব্রাউজারের বিশদ সনাক্ত করতে জেএসফিডেল দেখুন

ওএস সনাক্তকরণ:

// 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);

উত্স জাভাস্ক্রিপ্ট: ওএস সনাক্তকরণ
ওএস বিশদ সনাক্ত করতে জেএসফিডল দেখুন


1
আপনি কি জানেন যে আমি অ্যাপ্লিকেশনটির সমস্ত সম্ভাব্য মান খুঁজে পেতে পারি? ওয়েল, অ্যাপ্লিকেশন ব্যবহার করে এমন সমস্ত সম্ভাব্য ওএস মানগুলি?
জন ওডম

3
@ জনঅডম নতুন সিস্টেমগুলি (যেমন আসন্ন স্টিম বক্স) সম্ভবত তাদের নিজস্ব নাম রয়েছে; এবং বিদ্যমান সিস্টেমগুলি তাদের নাম বা শর্টহ্যান্ডগুলি পরিবর্তন করতে পারে। আপনি কখনই আপ-টু-ডেট থাকবেন না, যদি না আপনি এই তথ্যটি পেতে কোনও ধরণের গ্লোবাল ডাটাবেস ব্যবহার করেন; যেহেতু এটি সম্পূর্ণ মালিকানাধীন। হতে পারে কোনও দিন, গুগল, ডাব্লু 3 ইত্যাদি ভিড়ের উত্সের জন্য একটি এপিআই সরবরাহ করবে এবং তারা তাদের ব্যবহারকারীর কাছ থেকে সংগ্রহ করা সমস্ত ভিন্ন সিস্টেমের নাম এবং তাদের সম্পর্কের জন্য সর্বজনীনভাবে উপলব্ধ করবে।
ডোমি

1
verOffset = nAgt.indexOf ( "অপেরা")) = - 1। এটি অপেরা 20 এবং তদূর্ধেরের জন্য কাজ করবে না।
parth.hirpara

2
এজ সনাক্ত করতে অক্ষম।
মোহন সিং

1
এই জাভাস্ক্রিপ্ট পুরানো। এজ এবং IE 11 কে "নেটস্কেপ 5" হিসাবে প্রতিবেদন করে। Github.com/faisalman/ua-parser-js এর
জেমস বাউচার

20

আমি দুঃখের সাথে বলতে পারি: আমরা এইটির ভাগ্যের বাইরে নেই।

আমি আপনাকে হোয়াট ব্রাউজারের লেখকের কাছে উল্লেখ করতে চাই : প্রত্যেকে মিথ্যা বলে

মূলত, কোনও ব্রাউজার সৎ হচ্ছে না। আপনি ক্রোম বা আইই ব্যবহার করেন না কেন, তারা উভয়ই আপনাকে জানিয়ে দেবে যে তারা গেকো এবং সাফারি সমর্থন সহ "মজিলা নেটস্কেপ"। এই থ্রেডের চারপাশে উড়ন্ত যেকোন ফিডলগুলিতে নিজেই চেষ্টা করুন:

hims056 এর বেহালতা

হরিহরনের হুড়োহুড়ি

বা অন্য কোনও ... এটি Chrome এর মাধ্যমে চেষ্টা করুন (যা এখনও সফল হতে পারে), তারপরে IE এর সাম্প্রতিক সংস্করণ দিয়ে চেষ্টা করুন, এবং আপনি কেঁদে যাবেন will অবশ্যই, এটি ঠিক করার জন্য রয়েছে তাত্পর্যপূর্ণ ধারণা, তবে সমস্ত প্রান্তের মামলাগুলি উপলব্ধি করা ক্লান্তিকর হবে এবং সম্ভবত তারা এক বছরের মধ্যে আর কাজ করবে না।

আপনার কোডটি ধরুন, উদাহরণস্বরূপ:

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

ক্রোম বলেছেন:

ব্রাউজার কোডনাম: মজিলা

ব্রাউজারের নাম: নেটস্কেপ

ব্রাউজার সংস্করণ: 5.0 (উইন্ডোজ এনটি 6.1; WOW64) অ্যাপলওয়েবকিট / 537.36 (কেএইচটিএমএল, গেকোর মতো) ক্রোম / 40.0.2214.115 সাফারি / 537.36

কুকিজ সক্ষম: সত্য

প্ল্যাটফর্ম: Win32

ব্যবহারকারী-এজেন্ট শিরোনাম: মজিলা / 5.0 (উইন্ডোজ এনটি 6.1; ডাব্লুডাব্লু 64) অ্যাপলওয়েবকিট / 537.36 (কেএইচটিএমএল, গেকোর মতো) ক্রোম / 40.0.2214.115 সাফারি / 537.36

আইই বলেছেন:

ব্রাউজার কোডনাম: মজিলা

ব্রাউজারের নাম: নেটস্কেপ

ব্রাউজার সংস্করণ: 5.0 (উইন্ডোজ এনটি 6.1; ডাব্লুডব্লিউ 64; ট্রাইডেন্ট / 7.0; এসএলসিসি 2;। নেট সিএলআর 2.0.50727; নেট সিএলআর 3.5.30729;। নেট সিএলআর 3.0.30729; মিডিয়া সেন্টার পিসি 6.0;। নেট 4.0 সি;। নেট 4 .0 ই; তথ্যপথ 3; আরভি: 11.0) গেকোর মতো

কুকিজ সক্ষম: সত্য

প্ল্যাটফর্ম: Win32

ব্যবহারকারী-এজেন্ট শিরোনাম: মজিলা / 5.0 (উইন্ডোজ এনটি 6.1; ডাব্লুডাব্লুউ; 64; ট্রিলেন্ট / 7.0; এসএলসিসি 2;। নেট সিএলআর 2.0.50727;। নেট সিএলআর 3.5.30729;। নেট সিএলআর 3.0.30729; মিডিয়া সেন্টার পিসি 6.0; নেট 4। 0 সি;। নেট 4.0 ই; ইনফ্যাপা 3.3; আরভি: 11.0) গেকোর মতো

কমপক্ষে ক্রোমের এখনও একটি স্ট্রিং রয়েছে যাতে সঠিক সংস্করণ নম্বর সহ "ক্রোম" রয়েছে। তবে, IE এর জন্য আপনাকে অবশ্যই এটি নির্ধারণ করার জন্য যে জিনিসগুলি সমর্থন করে সেগুলি থেকে এক্সট্রোপোলেট করতে হবে (আর কে গর্ব করবে যে তারা সমর্থন করে .NETবা Media Center: পি), এবং তারপরে rv:সংস্করণ নম্বর পেতে একেবারে শেষের সাথে এটি ম্যাচ করুন । অবশ্যই, যেমন পরিশীলিত হিউরিস্টিকস খুব সম্ভবত IE 12 (বা তারা যেটিকে কল করতে চায়) প্রকাশের সাথে সাথেই ব্যর্থ হতে পারে।


2
এটি অপেরা ব্রাউজারের জন্য ক্রোম প্রদর্শন করছে।
রাজকিশোর সাহু 26'15

এই বৈশিষ্ট্যগুলির মধ্যে কয়েকটি "পশ্চাদপদ সামঞ্জস্যের জন্য রাখা হয়েছে", যেমন সমস্ত ব্রাউজারগুলি "নেটস্কেপ" navigator.appNameবিকাশকারী.মোজিলা.আর.ইন.ইউএস
ডকস /

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
দ্রষ্টব্য যে এখানে সমস্ত উত্তরগুলিতে গিথুব-লাইব্রেরিগুলির সমস্ত লিঙ্কগুলি থেকে, এই গ্রন্থাগারটি সর্বাধিক আপ-টু-ডেট বলে মনে হচ্ছে ('3 মাস আগে 'শেষ প্রতিশ্রুতি দিয়ে মে 2018 তে রচনা করা)
আইডিয়াগ্রাম

12

জাভাস্ক্রিপ্ট ব্যবহার করে অপারেটিং সিস্টেম সনাক্ত করতে নেভিগেটর.অ্যাপসার্শনটির পরিবর্তে নেভিগেটর.ইউসারএজেন্ট ব্যবহার করা ভাল

{
  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। এছাড়াও, এটি খুব সহায়ক হবে যদি আপনি ব্যাখ্যা করতে পারতেন ঠিক কেন এটির আরও ভাল :) এছাড়াও, মনে হচ্ছে 'ইউনিক্স / এক্স 11' মিস হয়েছে।
সিস্টেমগুলি রিবুটার

@ সিস্টেমস রিবুটার এই মন্তব্যের জন্য ধন্যবাদ আপনি এটিকে অন্য হিসাবে যোগ করতে পারেন।
নিসাল এদু

1
দুর্দান্ত উত্তর, এটি খুব সহায়ক ছিল
জেরেমি Bader

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
Chrome এ কনসোলে এই অ্যাড এবং পেয়েছিলাম "সাফারি / 537,36"
Daniel_Madain

এটি ক্রোমে এবং সম্ভবত অন্যান্য ব্রাউজারগুলিতে ব্যর্থ হবে। যেহেতু ইউজার এজেন্ট স্ট্রিং কোনও সম্পূর্ণ নির্ভরযোগ্য সংস্থান নয়। ব্রাউজার বিক্রেতারা প্রায়শই এতে বিভ্রান্তিকর তথ্যের টুকরো অন্তর্ভুক্ত করে।
কার্লোস জিমনেজ বারমুডেজ

1

আমি একই কোড সহ ক্রোম, ফায়ারফক্স, আই 11, এবং এজ এ কাজ করার জন্য অন্য কয়েকটি উত্তর পেতে সক্ষম হয়েছি। আমি নীচে নিয়ে এসেছি এবং এটি উপরে তালিকাভুক্ত ব্রাউজারগুলির জন্য কাজ করছে বলে মনে হচ্ছে। আমিও দেখতে চেয়েছিলাম যে ব্যবহারকারী কীভাবে চালু আছে। আমি ব্যবহারকারীকে ওভাররাইড হওয়া ব্যবহারকারী-এজেন্ট সেটিংস সহ কোনও ব্রাউজারের বিরুদ্ধে এটি পরীক্ষা করে দেখিনি, তাই মাইলেজ ভিন্ন হতে পারে। IFs এর ক্রমটি সঠিকভাবে কাজ করার জন্য এটি গুরুত্বপূর্ণ।

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);
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.