Home > Web Front-end > JS Tutorial > How Can I Retrieve Operating System Details Using JavaScript?

How Can I Retrieve Operating System Details Using JavaScript?

Susan Sarandon
Release: 2024-12-20 09:01:13
Original
681 people have browsed it

How Can I Retrieve Operating System Details Using JavaScript?

How to find the operating system details using JavaScript?

JavaScript provides various methods to access information about the user's operating system. Here's a comprehensive script that allows you to obtain detailed information about the OS name and version:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

/**

 * 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(nVer);

        var nameOffset, verOffset, ix;

 

        // Yandex Browser

        if ((verOffset = nAgt.indexOf('YaBrowser')) != -1) {

            browser = 'Yandex';

            version = nAgt.substring(verOffset + 10);

        }

        // Samsung Browser

        else if ((verOffset = nAgt.indexOf('SamsungBrowser')) != -1) {

            browser = 'Samsung';

            version = nAgt.substring(verOffset + 15);

        }

        // UC Browser

        else if ((verOffset = nAgt.indexOf('UCBrowser')) != -1) {

            browser = 'UC Browser';

            version = nAgt.substring(verOffset + 10);

        }

        // Opera Next

        else if ((verOffset = nAgt.indexOf('OPR')) != -1) {

            browser = 'Opera';

            version = nAgt.substring(verOffset + 4);

        }

        // Opera

        else if ((verOffset = nAgt.indexOf('Opera')) != -1) {

            browser = 'Opera';

            version = nAgt.substring(verOffset + 6);

            if ((verOffset = nAgt.indexOf('Version')) != -1) {

                version = nAgt.substring(verOffset + 8);

            }

        }

        // Legacy Edge

        else if ((verOffset = nAgt.indexOf('Edge')) != -1) {

            browser = 'Microsoft Legacy Edge';

            version = nAgt.substring(verOffset + 5);

        }

        // Edge (Chromium)

        else if ((verOffset = nAgt.indexOf('Edg')) != -1) {

            browser = 'Microsoft Edge';

            version = nAgt.substring(verOffset + 4);

        }

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

            majorVersion = parseInt(nVer, 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: /(Mac OS|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':

            case 'Mac OS X':

Copy after login

The above is the detailed content of How Can I Retrieve Operating System Details Using JavaScript?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template