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


উত্তর:


184

আপনি যদি window.navigatorব্যবহার করে এর সমস্ত সম্পত্তি তালিকাভুক্ত করেন

console.log(navigator);

আপনি এরকম কিছু দেখতে পাবেন

# platform = Win32
# appCodeName = Mozilla
# appName = Netscape
# appVersion = 5.0 (Windows; en-US)
# language = en-US
# mimeTypes = [object MimeTypeArray]
# oscpu = Windows NT 5.1
# vendor = Firefox
# vendorSub = 1.0.7
# product = Gecko
# productSub = 20050915
# plugins = [object PluginArray]
# securityPolicy =
# userAgent = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
# cookieEnabled = true
# javaEnabled = function javaEnabled() { [native code] }
# taintEnabled = function taintEnabled() { [native code] }
# preference = function preference() { [native code] }

নোট করুন যে oscpuবৈশিষ্ট্যটি আপনাকে উইন্ডোজ সংস্করণ দেয়। এছাড়াও, আপনার এটি জানা উচিত:

'Windows 3.11' => 'Win16',
'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)',
'Windows 98' => '(Windows 98)|(Win98)',
'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
'Windows Server 2003' => '(Windows NT 5.2)',
'Windows Vista' => '(Windows NT 6.0)',
'Windows 7' => '(Windows NT 6.1)',
'Windows 8' => '(Windows NT 6.2)|(WOW64)',
'Windows 10' => '(Windows 10.0)|(Windows NT 10.0)',
'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
'Windows ME' => 'Windows ME',
'Open BSD' => 'OpenBSD',
'Sun OS' => 'SunOS',
'Linux' => '(Linux)|(X11)',
'Mac OS' => '(Mac_PowerPC)|(Macintosh)',
'QNX' => 'QNX',
'BeOS' => 'BeOS',
'OS/2' => 'OS/2',
'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)'

অবশ্যই (উইন্ডোজ NT তে 6.2) এই লিঙ্কটি দেখুন bitbucket.org/cat_in_136/configuration-mania/src/...
kaissun

10
আমি যখন উইন্ডোজ on-এর ৪ টি প্রধান ব্রাউজারে এটি পরীক্ষা করেছিলাম তখন অ্যাসকপু আমার পক্ষে অবিচ্ছিন্নভাবে কাজ করেছিল @ @ লুডভিগের সমাধানটি ধারাবাহিকভাবে কাজ করেছিল।
ইয়ান ইপপোলিটো

wikpedia অনুযায়ী, en.wikipedia.org/wiki/Windows_NT_6.1 Windows NT 6.1 পারেন win 7 হতে পারে, 2008 সার্ভার অথবা উইন্ডো ছোট ব্যবসা সার্ভার win, একটি উপায় আছে তা নির্ধারণ এক যা হয়?
জুয়ান কার্লোস আলপিজার চিন্চিলা

93
উইন্ডো.নভিগেটর.অ্যাস্প্পু ক্রোমে অপরিজ্ঞাত
কার্টিস

8
উইন্ডো.নভিগেটর.প্ল্যাটফর্মটি ক্রোমে ওএস পেয়েছে।
কেথা কাব্য

205

আমি ওএস এবং ব্রাউজার সংস্করণ পড়ার জন্য একটি স্ক্রিপ্ট লিখতে শুরু করেছি যা ফিডল-এ পরীক্ষা করা যেতে পারে । নির্দ্বিধায় ব্যবহার করুন এবং প্রসারিত করুন।

/**
 * JavaScript Client Detection
 * (C) viazenetti GmbH (Christian Ludwig)
 */
(function (window) {
    {
        var unknown = '-';

        // screen
        var screenSize = '';
        if (screen.width) {
            width = (screen.width) ? screen.width : '';
            height = (screen.height) ? screen.height : '';
            screenSize += '' + width + " x " + height;
        }

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

        // Opera
        if ((verOffset = nAgt.indexOf('Opera')) != -1) {
            browser = 'Opera';
            version = nAgt.substring(verOffset + 6);
            if ((verOffset = nAgt.indexOf('Version')) != -1) {
                version = nAgt.substring(verOffset + 8);
            }
        }
        // Opera Next
        if ((verOffset = nAgt.indexOf('OPR')) != -1) {
            browser = 'Opera';
            version = nAgt.substring(verOffset + 4);
        }
        // Edge
        else if ((verOffset = nAgt.indexOf('Edge')) != -1) {
            browser = 'Microsoft Edge';
            version = nAgt.substring(verOffset + 5);
        }
        // MSIE
        else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {
            browser = 'Microsoft Internet Explorer';
            version = nAgt.substring(verOffset + 5);
        }
        // Chrome
        else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {
            browser = 'Chrome';
            version = nAgt.substring(verOffset + 7);
        }
        // Safari
        else if ((verOffset = nAgt.indexOf('Safari')) != -1) {
            browser = 'Safari';
            version = nAgt.substring(verOffset + 7);
            if ((verOffset = nAgt.indexOf('Version')) != -1) {
                version = nAgt.substring(verOffset + 8);
            }
        }
        // Firefox
        else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {
            browser = 'Firefox';
            version = nAgt.substring(verOffset + 8);
        }
        // MSIE 11+
        else if (nAgt.indexOf('Trident/') != -1) {
            browser = 'Microsoft Internet Explorer';
            version = nAgt.substring(nAgt.indexOf('rv:') + 3);
        }
        // Other browsers
        else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
            browser = nAgt.substring(nameOffset, verOffset);
            version = nAgt.substring(verOffset + 1);
            if (browser.toLowerCase() == browser.toUpperCase()) {
                browser = navigator.appName;
            }
        }
        // trim the version string
        if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);
        if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);
        if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);

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

        // mobile version
        var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);

        // cookie
        var cookieEnabled = (navigator.cookieEnabled) ? true : false;

        if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {
            document.cookie = 'testcookie';
            cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;
        }

        // system
        var os = unknown;
        var clientStrings = [
            {s:'Windows 10', r:/(Windows 10.0|Windows NT 10.0)/},
            {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},
            {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},
            {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},
            {s:'Windows Vista', r:/Windows NT 6.0/},
            {s:'Windows Server 2003', r:/Windows NT 5.2/},
            {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},
            {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},
            {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},
            {s:'Windows 98', r:/(Windows 98|Win98)/},
            {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},
            {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},
            {s:'Windows CE', r:/Windows CE/},
            {s:'Windows 3.11', r:/Win16/},
            {s:'Android', r:/Android/},
            {s:'Open BSD', r:/OpenBSD/},
            {s:'Sun OS', r:/SunOS/},
            {s:'Chrome OS', r:/CrOS/},
            {s:'Linux', r:/(Linux|X11(?!.*CrOS))/},
            {s:'iOS', r:/(iPhone|iPad|iPod)/},
            {s:'Mac OS X', r:/Mac OS X/},
            {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},
            {s:'QNX', r:/QNX/},
            {s:'UNIX', r:/UNIX/},
            {s:'BeOS', r:/BeOS/},
            {s:'OS/2', r:/OS\/2/},
            {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}
        ];
        for (var id in clientStrings) {
            var cs = clientStrings[id];
            if (cs.r.test(nAgt)) {
                os = cs.s;
                break;
            }
        }

        var osVersion = unknown;

        if (/Windows/.test(os)) {
            osVersion = /Windows (.*)/.exec(os)[1];
            os = 'Windows';
        }

        switch (os) {
            case 'Mac OS X':
                osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];
                break;

            case 'Android':
                osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1];
                break;

            case 'iOS':
                osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
                osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);
                break;
        }

        // flash (you'll need to include swfobject)
        /* script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" */
        var flashVersion = 'no check';
        if (typeof swfobject != 'undefined') {
            var fv = swfobject.getFlashPlayerVersion();
            if (fv.major > 0) {
                flashVersion = fv.major + '.' + fv.minor + ' r' + fv.release;
            }
            else  {
                flashVersion = unknown;
            }
        }
    }

    window.jscd = {
        screen: screenSize,
        browser: browser,
        browserVersion: version,
        browserMajorVersion: majorVersion,
        mobile: mobile,
        os: os,
        osVersion: osVersion,
        cookies: cookieEnabled,
        flashVersion: flashVersion
    };
}(this));

alert(
    'OS: ' + jscd.os +' '+ jscd.osVersion + '\n' +
    'Browser: ' + jscd.browser +' '+ jscd.browserMajorVersion +
      ' (' + jscd.browserVersion + ')\n' + 
    'Mobile: ' + jscd.mobile + '\n' +
    'Flash: ' + jscd.flashVersion + '\n' +
    'Cookies: ' + jscd.cookies + '\n' +
    'Screen Size: ' + jscd.screen + '\n\n' +
    'Full User Agent: ' + navigator.userAgent
);

1
দুর্দান্ত সমাধান, তবে দুর্ভাগ্যক্রমে অপেরা নেক্সট ( en.wikedia.org/wiki/… ) এর জন্য সঠিকভাবে কাজ করে না । এটি ক্রোম হিসাবে সনাক্ত করা হয়েছে। এটি পরীক্ষা করার জন্য, ব্যবহারকারী এজেন্টে 'ওপিআর' সূচক পান।
ইডেল

2
@akapelko দুর্ভাগ্যবশত মাইক্রোসফট একই সংস্করণ সংখ্যা একাধিক OS এর জন্য (দেখুন ব্যবহার msdn.microsoft.com/en-us/library/windows/desktop/... )
লুডউইগ

16
আমি @ লুডভিগের কোড দ্বারা অনুপ্রাণিত হয়ে গিটহাবের উপর একটি উন্মুক্ত উত্সাহিত প্রকল্প তৈরি করেছি। github.com/keithws/browser-report
কিথ শ

2
'এজ' এর জন্য একটি সনাক্তকরণ যুক্ত করা হয়েছে
লুডভিগ

1
ধন্যবাদ এসকিউডব্রিথ ধন্যবাদ ক্রোম ওএস যুক্ত করেছে এবং কঠোর লিনাক্স সনাক্তকরণ অন্তর্ভুক্ত করেছে (যদি কেউ অর্ডার পরিবর্তন করে)
লুডভিগ

81
var OSName = "Unknown";
if (window.navigator.userAgent.indexOf("Windows NT 10.0")!= -1) OSName="Windows 10";
if (window.navigator.userAgent.indexOf("Windows NT 6.2") != -1) OSName="Windows 8";
if (window.navigator.userAgent.indexOf("Windows NT 6.1") != -1) OSName="Windows 7";
if (window.navigator.userAgent.indexOf("Windows NT 6.0") != -1) OSName="Windows Vista";
if (window.navigator.userAgent.indexOf("Windows NT 5.1") != -1) OSName="Windows XP";
if (window.navigator.userAgent.indexOf("Windows NT 5.0") != -1) OSName="Windows 2000";
if (window.navigator.userAgent.indexOf("Mac")            != -1) OSName="Mac/iOS";
if (window.navigator.userAgent.indexOf("X11")            != -1) OSName="UNIX";
if (window.navigator.userAgent.indexOf("Linux")          != -1) OSName="Linux";

2
@Jeff কিছু কিছু অকাল অপ্টিমাইজেশান :)
RozzA

2
খুব সরল, কাটা এবং শুকনো উত্তর .. আমার যা দরকার তা হল। অন্যান্য উত্তরগুলি খুব স্বনির্ধারিত।
eaglei22

13

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

  1. আইই 11 আর নিজেকে এমএস আইই হিসাবে চিহ্নিত করে না।
  2. আইওএস-এ থাকা ক্রোম নিজেকে সাফারি হিসাবে ছদ্মবেশ দেয়

এখানে তারা:

(function (window) {
    {
    /* test cases
        alert(
            'browserInfo result: OS: ' + browserInfo.os +' '+ browserInfo.osVersion + '\n'+
                'Browser: ' + browserInfo.browser +' '+ browserInfo.browserVersion + '\n' +
                'Mobile: ' + browserInfo.mobile + '\n' +
                'Cookies: ' + browserInfo.cookies + '\n' +
                'Screen Size: ' + browserInfo.screen
        );
    */
        var unknown = 'Unknown';

        // screen
        var screenSize = '';
        if (screen.width) {
            width = (screen.width) ? screen.width : '';
            height = (screen.height) ? screen.height : '';
            screenSize += '' + width + " x " + height;
        }

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

        // Opera
        if ((verOffset = nAgt.indexOf('Opera')) != -1) {
            browser = 'Opera';
            version = nAgt.substring(verOffset + 6);
            if ((verOffset = nAgt.indexOf('Version')) != -1) {
                version = nAgt.substring(verOffset + 8);
            }
        }
        // MSIE
        else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {
            browser = 'Microsoft Internet Explorer';
            version = nAgt.substring(verOffset + 5);
        }

        //IE 11 no longer identifies itself as MS IE, so trap it
        //http://stackoverflow.com/questions/17907445/how-to-detect-ie11
        else if ((browser == 'Netscape') && (nAgt.indexOf('Trident/') != -1)) {

            browser = 'Microsoft Internet Explorer';
            version = nAgt.substring(verOffset + 5);
            if ((verOffset = nAgt.indexOf('rv:')) != -1) {
                version = nAgt.substring(verOffset + 3);
            }

        }

        // Chrome
        else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {
            browser = 'Chrome';
            version = nAgt.substring(verOffset + 7);
        }
        // Safari
        else if ((verOffset = nAgt.indexOf('Safari')) != -1) {
            browser = 'Safari';
            version = nAgt.substring(verOffset + 7);
            if ((verOffset = nAgt.indexOf('Version')) != -1) {
                version = nAgt.substring(verOffset + 8);
            }

            // Chrome on iPad identifies itself as Safari. Actual results do not match what Google claims
            //  at: https://developers.google.com/chrome/mobile/docs/user-agent?hl=ja
            //  No mention of chrome in the user agent string. However it does mention CriOS, which presumably
            //  can be keyed on to detect it.
            if (nAgt.indexOf('CriOS') != -1) {
                //Chrome on iPad spoofing Safari...correct it.
                browser = 'Chrome';
                //Don't believe there is a way to grab the accurate version number, so leaving that for now.
            }
        }
        // Firefox
        else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {
            browser = 'Firefox';
            version = nAgt.substring(verOffset + 8);
        }
        // Other browsers
        else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
            browser = nAgt.substring(nameOffset, verOffset);
            version = nAgt.substring(verOffset + 1);
            if (browser.toLowerCase() == browser.toUpperCase()) {
                browser = navigator.appName;
            }
        }
        // trim the version string
        if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);
        if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);
        if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);

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

        // mobile version
        var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);

        // cookie
        var cookieEnabled = (navigator.cookieEnabled) ? true : false;

        if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {
            document.cookie = 'testcookie';
            cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;
        }

        // system
        var os = unknown;
        var clientStrings = [
            {s:'Windows 3.11', r:/Win16/},
            {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},
            {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},
            {s:'Windows 98', r:/(Windows 98|Win98)/},
            {s:'Windows CE', r:/Windows CE/},
            {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},
            {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},
            {s:'Windows Server 2003', r:/Windows NT 5.2/},
            {s:'Windows Vista', r:/Windows NT 6.0/},
            {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},
            {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},
            {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},
            {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},
            {s:'Windows ME', r:/Windows ME/},
            {s:'Android', r:/Android/},
            {s:'Open BSD', r:/OpenBSD/},
            {s:'Sun OS', r:/SunOS/},
            {s:'Linux', r:/(Linux|X11)/},
            {s:'iOS', r:/(iPhone|iPad|iPod)/},
            {s:'Mac OS X', r:/Mac OS X/},
            {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},
            {s:'QNX', r:/QNX/},
            {s:'UNIX', r:/UNIX/},
            {s:'BeOS', r:/BeOS/},
            {s:'OS/2', r:/OS\/2/},
            {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}
        ];
        for (var id in clientStrings) {
            var cs = clientStrings[id];
            if (cs.r.test(nAgt)) {
                os = cs.s;
                break;
            }
        }

        var osVersion = unknown;

        if (/Windows/.test(os)) {
            osVersion = /Windows (.*)/.exec(os)[1];
            os = 'Windows';
        }

        switch (os) {
            case 'Mac OS X':
                osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];
                break;

            case 'Android':
                osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1];
                break;

            case 'iOS':
                osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
                osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);
                break;

        }
    }

    window.browserInfo = {
        screen: screenSize,
        browser: browser,
        browserVersion: version,
        mobile: mobile,
        os: os,
        osVersion: osVersion,
        cookies: cookieEnabled
    };
}(this));

আমি এর উপর ভিত্তি করে একটি গিথুব রেপো শুরু করেছি। github.com/thorst/Browser । লক্ষ্য হ'ল ন্যূনতম, তবে পর্যাপ্ত কভারেজ রয়েছে।
টড হর্স্ট

সুতরাং এখন আপনাকে যা করতে হবে তা হ'ল প্রতিটি ডিভাইসের প্রতিটি ব্রাউজারের প্রকাশিত হওয়ার সাথে সাথে এটি আপডেট করে রাখা। আমি কোথাও "স্যামসাং স্মার্টটিভি" দেখতে পাচ্ছি না।
রবজি

@ ইয়ান ইপপোলিটো এটি অনেক সহায়ক thanks এছাড়াও আমি জানতে চাই যে আমরা কীভাবে প্রান্তের ব্রাউজার এবং এর সংস্করণটি খুঁজে পেতে পারি।
বিজয়

11

জাভাস্ক্রিপ্টের এতে অ্যাক্সেস রয়েছে window.navigator.platform- ব্রাউজারের প্ল্যাটফর্মের প্রতিনিধিত্ব করে একটি স্ট্রিং: https://developer.mozilla.org/en/DOM/window.navigator.platform

আপনার যা যাবতীয় বিশদ (এবং ক্যান) প্রয়োজন নিষ্কাশন করতে এটি ব্যবহার করুন। নোট করুন যে ক্লায়েন্ট আসলে প্ল্যাটফর্মটি ব্যবহার করে এমন কোনও গ্যারান্টি নেই যেহেতু এটি সহজেই বিভিন্ন উপায়ে পরিবর্তন করা যায়।


4
"এই বৈশিষ্ট্যটি ওয়েব স্ট্যান্ডার্ড থেকে সরানো হয়েছে some যদিও কিছু ব্রাউজার এখনও এটি সমর্থন করতে পারে তবে এটি বাদ দেওয়ার প্রক্রিয়াধীন old এটি পুরানো বা নতুন প্রকল্পগুলিতে ব্যবহার করবেন না it এটি ব্যবহার করা পৃষ্ঠা বা ওয়েব অ্যাপস যে কোনও সময় ভেঙে যেতে পারে। "
কন আন্তোনাকোস

1
@ কনআন্টোনাকোস আপনি কি এই বিবৃতিটির জন্য একটি রেফারেন্স সরবরাহ করতে পারেন? এই উত্তরটিতে এমডিএন লিঙ্কে উল্লেখ করা হয়নি।
স্প্লাক্টর

2
@ স্প্ল্যাক্টর - এটি এত অদ্ভুত। এই বার্তাটি অবশ্যই ছিল, কিন্তু আমি দেখতে পাচ্ছি এটি আর নেই। আমার মনে হয় ২০১ 2016 সালের কোন এক সময় এটি বিবেচনা করা হয়েছিল? আমি এই প্রশ্নটি ( স্ট্যাকওভারফ্লো / প্রশ্ন / 38506517/… ) ও দেখতে পাচ্ছি , সুতরাং অন্য কেউ এটির বিষয়টিও লক্ষ্য করেছেন। আপডেটের জন্য ধন্যবাদ.
কন আন্তোনাকোস

আমার মনে হয়
ডক্সটি গোলমাল

আপডেট: আমি পর্তুগিজ ডক্স সংশোধন করেছিলাম এবং আমি যাচাই করেছিলাম যে ইংরেজী ডকগুলি সত্যই কোনও সময়ে সংশোধন করা হয়েছিল।
গার্ক গার্সিয়া

9

প্ল্যাটফর্ম.জেগুলি এটি করার জন্য একটি ভাল একটি ফাইল লাইব্রেরি বলে মনে হচ্ছে।

ব্যবহারের উদাহরণ:

// on IE10 x86 platform preview running in IE7 compatibility mode on Windows 7 64 bit edition
platform.name; // 'IE'
platform.version; // '10.0'
platform.layout; // 'Trident'
platform.os; // 'Windows Server 2008 R2 / 7 x64'
platform.description; // 'IE 10.0 x86 (platform preview; running in IE 7 mode) on Windows Server 2008 R2 / 7 x64'

// or on an iPad
platform.name; // 'Safari'
platform.version; // '5.1'
platform.product; // 'iPad'
platform.manufacturer; // 'Apple'
platform.layout; // 'WebKit'
platform.os; // 'iOS 5.0'
platform.description; // 'Safari 5.1 on Apple iPad (iOS 5.0)'

// or parsing a given UA string
var info = platform.parse('Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7.2; en; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 11.52');
info.name; // 'Opera'
info.version; // '11.52'
info.layout; // 'Presto'
info.os; // 'Mac OS X 10.7.2'
info.description; // 'Opera 11.52 (identifying as Firefox 4.0) on Mac OS X 10.7.2'

7

আপনি সহজেই javascriptব্যবহারকারীদের ওএস পরীক্ষা করতে এই ফাংশনটি ব্যবহার করতে পারেন

  function getOS() {
  var userAgent = window.navigator.userAgent,
      platform = window.navigator.platform,
      macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'],
      windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'],
      iosPlatforms = ['iPhone', 'iPad', 'iPod'],
      os = null;

  if (macosPlatforms.indexOf(platform) !== -1) {
    os = 'Mac OS';
  } else if (iosPlatforms.indexOf(platform) !== -1) {
    os = 'iOS';
  } else if (windowsPlatforms.indexOf(platform) !== -1) {
    os = 'Windows';
  } else if (/Android/.test(userAgent)) {
    os = 'Android';
  } else if (!os && /Linux/.test(platform)) {
    os = 'Linux';
  }

  return os;
}

alert(getOS());

3

navigatorঅন্যরা যেমন উত্তর দিয়েছে তেমন আপনি ওজেক্টের নাম ও সংস্করণটি খুঁজে পেতে পারেন । এই তথ্যটি সন্ধান করার জন্য স্ট্যান্ডার্ড, ক্রস ব্রাউজারের জায়গাটি navigator.userAgentসম্পত্তিটিতে রয়েছে। তবে, ব্যবহারকারী এজেন্ট স্ট্রিংগুলি ওএস এবং ব্রাউজারের মাধ্যমে পৃথকভাবে পরিবর্তিত হয়।

সুতরাং, আমি এই লজিকটি সজ্জিত করার জন্য একটি স্ক্রিপ্ট তৈরি করেছি এবং খুব সাধারণ ওএস এবং ব্রাউজারগুলিতে http://www.whatsmybrowser.org এর মতো পরিচিত উপায়ে রিপোর্ট করতে পারি ।

আমি স্ক্রিপ্টটি ওপেন-সোর্স করেছি এবং এটি গিথুব, https://github.com/keithws/browser-report এ আপলোড করেছি । টান অনুরোধ স্বাগত!


1

আমি ভুডু নামে ব্যবহারকারী এজেন্ট স্ট্রিং পার্স করার জন্য একটি গ্রন্থাগার তৈরি করেছি । তবে সচেতন হন যে বৈশিষ্ট্য সনাক্তকরণের পরিবর্তে এটি ব্যবহার করা উচিত নয়

ভুডু যা করে তা হ'ল এটি ইউজার এজেন্ট স্ট্রিংকে পার্স করে যা নেভিগেটর অবজেক্টে (উইন্ডো.ন্যাভিগেটর) পাওয়া যায়। এটি এমন কোনও ব্রাউজার নয় যা নির্ভরযোগ্য ইউজার এজেন্ট স্ট্রিংকে পাস করে, তাই এটি করার সাধারণ উপায় হলেও ইউজার এজেন্ট সর্বদা বিশ্বাস করা যায় না।


আমি ভুডুকে পছন্দ করতাম, তবে আমার মনে হয় মোবাইল, ট্যাবলেট ইত্যাদির মধ্যে সহজে পার্থক্য করার একটি উপায় হওয়া উচিত ... দয়া করে এটি গিটিপ এ পোস্ট করুন যাতে আমি আপনাকে সুন্দর কাজের জন্য টিপস দিতে পারি।
lolol

1

আমি @ লডউইগ কোডটি কাঁটাচামচ করে দিয়ে প্রয়োজনীয়তা সরিয়ে ফেলিswfobject

আমি কেবল ফ্ল্যাশ সংস্করণ সনাক্ত করার জন্য swfobject কোড ব্যবহার করি

/**
 * JavaScript Client Detection
 * (C) viazenetti GmbH (Christian Ludwig)
 */
(function (window) {
    {
    var unknown = '-';

    // screen
    var screenSize = '';
    if (screen.width) {
        width = (screen.width) ? screen.width : '';
        height = (screen.height) ? screen.height : '';
        screenSize += '' + width + " x " + height;
    }

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

    // Opera
    if ((verOffset = nAgt.indexOf('Opera')) != -1) {
        browser = 'Opera';
        version = nAgt.substring(verOffset + 6);
        if ((verOffset = nAgt.indexOf('Version')) != -1) {
        version = nAgt.substring(verOffset + 8);
        }
    }
    // MSIE
    else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {
        browser = 'Microsoft Internet Explorer';
        version = nAgt.substring(verOffset + 5);
    }
    // Chrome
    else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {
        browser = 'Chrome';
        version = nAgt.substring(verOffset + 7);
    }
    // Safari
    else if ((verOffset = nAgt.indexOf('Safari')) != -1) {
        browser = 'Safari';
        version = nAgt.substring(verOffset + 7);
        if ((verOffset = nAgt.indexOf('Version')) != -1) {
        version = nAgt.substring(verOffset + 8);
        }
    }
    // Firefox
    else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {
        browser = 'Firefox';
        version = nAgt.substring(verOffset + 8);
    }
    // MSIE 11+
    else if (nAgt.indexOf('Trident/') != -1) {
        browser = 'Microsoft Internet Explorer';
        version = nAgt.substring(nAgt.indexOf('rv:') + 3);
    }
    // Other browsers
    else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
        browser = nAgt.substring(nameOffset, verOffset);
        version = nAgt.substring(verOffset + 1);
        if (browser.toLowerCase() == browser.toUpperCase()) {
        browser = navigator.appName;
        }
    }
    // trim the version string
    if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix);
    if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix);
    if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix);

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

    // mobile version
    var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer);

    // cookie
    var cookieEnabled = (navigator.cookieEnabled) ? true : false;

    if (typeof navigator.cookieEnabled == 'undefined' && !cookieEnabled) {
        document.cookie = 'testcookie';
        cookieEnabled = (document.cookie.indexOf('testcookie') != -1) ? true : false;
    }

    // system
    var os = unknown;
    var clientStrings = [
        {s:'Windows 10', r:/(Windows 10.0|Windows NT 10.0)/},
        {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/},
        {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/},
        {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/},
        {s:'Windows Vista', r:/Windows NT 6.0/},
        {s:'Windows Server 2003', r:/Windows NT 5.2/},
        {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/},
        {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/},
        {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/},
        {s:'Windows 98', r:/(Windows 98|Win98)/},
        {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/},
        {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},
        {s:'Windows CE', r:/Windows CE/},
        {s:'Windows 3.11', r:/Win16/},
        {s:'Android', r:/Android/},
        {s:'Open BSD', r:/OpenBSD/},
        {s:'Sun OS', r:/SunOS/},
        {s:'Linux', r:/(Linux|X11)/},
        {s:'iOS', r:/(iPhone|iPad|iPod)/},
        {s:'Mac OS X', r:/Mac OS X/},
        {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},
        {s:'QNX', r:/QNX/},
        {s:'UNIX', r:/UNIX/},
        {s:'BeOS', r:/BeOS/},
        {s:'OS/2', r:/OS\/2/},
        {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}
    ];
    for (var id in clientStrings) {
        var cs = clientStrings[id];
        if (cs.r.test(nAgt)) {
        os = cs.s;
        break;
        }
    }

    var osVersion = unknown;

    if (/Windows/.test(os)) {
        osVersion = /Windows (.*)/.exec(os)[1];
        os = 'Windows';
    }

    switch (os) {
        case 'Mac OS X':
        osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1];
        break;

        case 'Android':
        osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1];
        break;

        case 'iOS':
        osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer);
        osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0);
        break;
    }

    var flashVersion = 'no check', d, fv = [];
    if (typeof navigator.plugins !== 'undefined' && typeof navigator.plugins["Shockwave Flash"] === "object") {
        d = navigator.plugins["Shockwave Flash"].description;
        if (d && !(typeof navigator.mimeTypes !== 'undefined' && navigator.mimeTypes["application/x-shockwave-flash"] && !navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
        d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
        fv[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
        fv[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
        fv[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
        }
    } else if (typeof window.ActiveXObject !== 'undefined') {
        try {
        var a = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
        if (a) { // a will return null when ActiveX is disabled
            d = a.GetVariable("$version");
            if (d) {
            d = d.split(" ")[1].split(",");
            fv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
            }
        }
        }
        catch(e) {}
    }
    if (fv.length) {
        flashVersion = fv[0] + '.' + fv[1] + ' r' + fv[2];
    }    
    }

    window.jscd = {
    screen: screenSize,
    browser: browser,
    browserVersion: version,
    mobile: mobile,
    os: os,
    osVersion: osVersion,
    cookies: cookieEnabled,
    flashVersion: flashVersion
    };
}(this));

alert(
    'OS: ' + jscd.os +' '+ jscd.osVersion + '\n'+
    'Browser: ' + jscd.browser +' '+ jscd.browserVersion + '\n' + 
    'Mobile: ' + jscd.mobile + '\n' +
    'Flash: ' + jscd.flashVersion + '\n' +
    'Cookies: ' + jscd.cookies + '\n' +
    'Screen Size: ' + jscd.screen + '\n\n' +
    'Full User Agent: ' + navigator.userAgent
);

1

সনাক্তকারী.এসএস ব্যবহার করুন :

var Detect = {
    init: function () {
        this.OS = this.searchString(this.dataOS);
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    dataOS : [
        {
            string: navigator.platform,
            subString: 'Win',
            identity: 'Windows'
        },
        {
            string: navigator.platform,
            subString: 'Mac',
            identity: 'macOS'
        },
        {
            string: navigator.userAgent,
            subString: 'iPhone',
            identity: 'iOS'
        },
        {
            string: navigator.userAgent,
            subString: 'iPad',
            identity: 'iOS'
        },
        {
            string: navigator.userAgent,
            subString: 'iPod',
            identity: 'iOS'
        },
        {
            string: navigator.userAgent,
            subString: 'Android',
            identity: 'Android'
        },
        {
            string: navigator.platform,
            subString: 'Linux',
            identity: 'Linux'
        }
    ]
};

Detect.init();

console.log("We know your OS – it's " + Detect.OS + ". We know everything about you.");

0

আমি @ ইয়ান ইপপোলিটো জবাব সম্পর্কে মন্তব্য করতে পারি না (কারণ আমার কাছে রেপ থাকলে আমার কাছে থাকতে পারে) তবে নথি অনুসারে তার মন্তব্যের সাথে যুক্ত হয়েছে, আমি মোটামুটি নিশ্চিত যে আপনি আইওএসের জন্য ক্রোম সংস্করণটি খুঁজে পেতে পারেন। https://developer.chrome.com/multidevice/user-agent?hl=ja ইউএকে তালিকাবদ্ধ করেছে: মজিলা / 5.0 (আইফোন; ম্যাক ওএস এক্সের মতো সিপিইউ আইফোন ওএস 10_3) অ্যাপলওয়েবকিট / 602.1.50 (কেএইচটিএমএল, গেকোর মতো) ক্রিয়স / 56.0.2924.75 মোবাইল / 14E5239e সাফারি / 602.1

সুতরাং এটি কাজ করা উচিত:

if ((verOffset = nAgt.indexOf('CriOS')) != -1) {
                //Chrome on iPad spoofing Safari...correct it.
                browser = 'Chrome';
                version = nAgt.substring(verOffset + 6);//should get the criOS ver.
            }

আমার আইপ্যাড যেহেতু বাড়িতে রয়েছে এবং আমি কর্মস্থলে রয়েছি তা নিশ্চিত করার জন্য এটি পরীক্ষা করতে সক্ষম হয়েছি (অন্যথায় আমি তার উত্তরটি উন্নত করতে পারতাম) তবে আমি ভেবেছিলাম যে আমি এটি এখানে রেখে দেব।


0

আরে দ্রুত সমাধানের জন্য আপনি নিম্নলিখিত লাইব্রেরিটি বিবেচনা করতে পারেন: UAPARSER - https://www.npmjs.com/package/ua-parser-js

উদাহরণ:

<script type="text/javascript" src="ua-parser.min.js"></script>
<script type="text/javascript">

var parser = new UAParser();
console.log(parser.getOS()) // will log  {name: "", version:""}

আপনি এনপিএম এর মাধ্যমে গ্রন্থাগারটিও ইনস্টল করতে পারেন এবং এটি এই জাতীয়ভাবে আমদানি করতে পারেন:

import { UAParser } from 'ua-parser-js';
let parser = new UAParser();
parser.getOS();

লাইব্রেরিটি একটি জেএস ভিত্তিক ব্যবহারকারী এজেন্ট স্ট্রিং পার্সার (উইন্ডো.নাইভিগেটর.ইউসার এজেন্ট ব্রাউজারে ব্যবহারকারী এজেন্ট), যাতে আপনি এটির সাথে ব্রাউজার, ডিভাইস, ইঞ্জিন ইত্যাদির মতো অন্যান্য বিবরণও পেতে পারেন .. এবং এটি নোড জেএসের সাথে কাজ করতে পারে যেমন.

আপনার যদি লাইব্রেরির জন্য টাইপ করা দরকার: https://www.npmjs.com/package/@tyype/ua-parser-js

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