Heim Web-Frontend js-Tutorial Javascript implementiert die Erkennung von Paket_Javascript-Kenntnissen des Client-Typcodes

Javascript implementiert die Erkennung von Paket_Javascript-Kenntnissen des Client-Typcodes

May 16, 2016 pm 03:28 PM
javascript

检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统

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

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

/**

 * Author: laixiangran.

 * Created by laixiangran on 2015/12/02.

 * 检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统

 * ********************************************************************

 * 各版本浏览器在windows10.0下的用户代理字符串:

 * Google Chrome 45.0.2454.85 —— "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"

 * Opera 31.0.1889.174 —— "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36 OPR/31.0.1889.174"

 * Microsoft Edge —— "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240"

 * Firefox 40.0.3 —— "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"

 * Internet Explorer 11+ —— "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; rv:11.0) like Gecko"

 * Internet Explorer 10- —— "Mozilla/5.0 (compatible; MSIE x.0; Windows NT 10.0; WOW64; Trident/8.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"

 */

(function(){

 

  window.iClient = {};

 

  //呈现引擎信息

  var engine = {

    //呈现引擎

    ie: 0,

    gecko: 0,

    webkit: 0,

    khtml: 0,

    opera:0,

    //具体版本号

    ver: null

  };

 

  var browser = {

    //浏览器

    ie: 0,

    edge: 0,

    firefox: 0,

    safari: 0,

    konq: 0,

    opera: 0,

    chrome: 0,

    //具体版本号

    ver: null

  };

 

  //平台、设备和操作系统

  var system = {

    win: false,

    mac: false,

    unix: false,

 

    //移动设备

    iphone: false,

    ipod: false,

    ipad: false,

    ios: false,

    android: false,

    nokiaN: false,

    winMobile: false,

 

    //游戏系统

    wii: false, //任天堂

    ps: false  //Playstation3

  };

 

  //获取浏览器的用户代理字符串

  var ua = window.navigator.userAgent;

 

  //检测呈现引擎和浏览器

  //检测Presto内核的Opera浏览器

  if(window.opera){

    engine.ver = browser.ver = window.opera.version();

    engine.opera = browser.opera = parseFloat(engine.ver);

  }

  //检测WebKit 用代理字符串中的"AppleWebKit"进行检测

  else if(/AppleWebKit\/(\S+)/.test(ua)){

    engine.ver = RegExp["$1"];

    engine.webkit = parseFloat(engine.ver);

    //确定Microsoft Edge

    if(/Edge\/(\S+)/.test(ua)){

      browser.ver = RegExp["$1"];

      browser.edge = parseFloat(browser.ver);

    }

    //确定WebKit内核Opera

    else if(/OPR\/(\S+)/.test(ua)){

      browser.ver = RegExp["$1"];

      browser.opera = parseFloat(browser.ver);

    }

    //确定Chrome

    else if(/Chrome\/(\S+)/.test(ua)){

      browser.ver = RegExp["$1"];

      browser.chrome = parseFloat(browser.ver);

    }

    //确定Safari

    else if(/Version\/(\S+)/.test(ua)){

      browser.ver = RegExp["$1"];

      browser.safari = parseFloat(browser.ver);

    }else{

      //近似的确定版本号

      var safariVersion = 1;

      if(engine.webkit < 100){

        safariVersion = 1;

      }else if(engine.webkit <312){

        safariVersion = 1.2;

      }else if(engine.webkit < 412){

        safariVersion = 1.3;

      }else{

        safariVersion = 2;

      }

      browser.ver = browser.safari = safariVersion;

    }

  }

  //检测KHTML 用于Konqueror3.1及更早版本中不包含KHTML的版本,故而就要使用Konqueror的版本来代替

  else if(/KHTML\/(\S+)/.test(ua) || /Konqueror\/(\S+)/.test(ua)){

    engine.ver = browser.ver = RegExp["$1"];

    engine.khtml = browser.konq = parseFloat(engine.ver);s

  }

  //检测Gecko 其版本号在字符串"rv:"的后面

  else if(/rv:([^\)]+)\) Gecko\/\d{8}/.test(ua)){

    engine.ver = RegExp["$1"];

    engine.gecko = parseFloat(engine.ver);

    //确定Firefox

    if(/Firefox\/(\S+)/.test(ua)){

      browser.ver = RegExp["$1"];

      browser.firefox = parseFloat(browser.ver);

    }

  }

  //检测IE

  else if(/MSIE ([^;]+)/.test(ua) || /rv:([^\)]+)\) like Gecko/.test(ua)){

    engine.ver = browser.ver = RegExp["$1"];

    engine.ie = browser.ie = parseFloat(engine.ver);

  }

 

  //获取平台或者操作系统信息,可能的值:win32、win64、MacPPC、MacIntel、Xll、Linux i686

  var p = window.navigator.platform;

 

  //检测平台

  system.win = p.indexOf("Win") == 0;

  system.mac = p.indexOf("Mac") == 0;

  system.unix = (p == "Xll'") || (p.indexOf("Linux") == 0);

 

  //检测Windows操作系统

  if(system.win){

    if(/Win(&#63;:dows )&#63;([^do]{2})\s&#63;(\d+\.\d+)&#63;/.test(ua)){

      if(RegExp["$1"] == "NT"){

        switch(RegExp["$2"]){

          case "5.0":

            system.win = "2000";

            break;

          case "5.1":

            system.win = "XP";

            break;

          case "6.0":

            system.win = "Vista";

            break;

          case "7":

            system.win = "7";

            break;

          case "8":

            system.win = "8";

            break;

          case "8.1":

            system.win = "8.1";

            break;

          case "10.0":

            system.win = "10.0";

            break;

          default:

            system.win = "NT";

            break;

        }

      }

    }

  }

 

  //移动设备

  system.iphone = ua.indexOf("iPhone") > -1;

  system.ipod = ua.indexOf("iPod") > -1;

  system.ipad = ua.indexOf("iPad") > -1;

  system.nokiaN = ua.indexOf("NokiaN") > -1;

 

  //window mobile

  if(system.win == "CE"){

    system.winMobile = system.win;

  }else if(system.win == "Ph"){

    if(/Windows Phone OS (\d+.\d+)/.test(ua)){

      system.win = "Phone";

      system.winMobile = parseFloat(RegExp["$1"]);

    }

  }

 

  //检测iOS版本

  if(system.mac && ua.indexOf("Mobile") > -1){

    if(/CPU (&#63;:iPhone )&#63;OS (\d+.\d+)/.test(ua)){

      system.ios = parseFloat(RegExp["$1"].replace("_","."));

    }else{

      system.ios = 2; //不能真正检测出来,所以只能猜测

    }

  }

 

  //检测安卓版本

  if(/Android (\d+.\d+)/.test(ua)){

    system.android = parseFloat(RegExp["$1"]);

  }

 

  //检测游戏系统

  system.wii = ua.indexOf("wii") > -1;

  system.ps = /playstation/i.test(ua);

 

  window.iClient.engine = engine;

  window.iClient.browser = browser;

  window.iClient.system = system;

})();

Nach dem Login kopieren

再给大家一个简单点的实例:判断windows、linux、android

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

<html>

<head>

<title>判断操作系统</title>

<script type="text/javascript">

function detectOS() {

var sUserAgent = navigator.userAgent;

 

var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");

var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel");

if (isMac) return "Mac";

var isUnix = (navigator.platform == "X11") && !isWin && !isMac;

if (isUnix) return "Unix";

var isLinux = (String(navigator.platform).indexOf("Linux") > -1);

 

var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";

if (isLinux) {

if(bIsAndroid) return "Android";

else return "Linux";

}

if (isWin) {

var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1;

if (isWin2K) return "Win2000";

var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 ||

sUserAgent.indexOf("Windows XP") > -1;

if (isWinXP) return "WinXP";

var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1;

if (isWin2003) return "Win2003";

var isWinVista= sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1;

if (isWinVista) return "WinVista";

var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1;

if (isWin7) return "Win7";

}

return "other";

}

document.writeln("您的操作系统是:" + detectOS());

alert(detectOS());

</script>

</head>

<body>

</body>

</html>

Nach dem Login kopieren

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

So verwenden Sie insertBefore in Javascript So verwenden Sie insertBefore in Javascript Nov 24, 2023 am 11:56 AM

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Bildverarbeitungssystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Bildverarbeitungssystems Dec 17, 2023 am 08:41 AM

JavaScript ist eine in der Webentwicklung weit verbreitete Programmiersprache, während WebSocket ein Netzwerkprotokoll für die Echtzeitkommunikation ist. Durch die Kombination der leistungsstarken Funktionen beider können wir ein effizientes Echtzeit-Bildverarbeitungssystem erstellen. In diesem Artikel wird erläutert, wie dieses System mithilfe von JavaScript und WebSocket implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die Anforderungen und Ziele des Echtzeit-Bildverarbeitungssystems klären. Angenommen, wir haben ein Kameragerät, das Bilddaten in Echtzeit sammeln kann

See all articles