PageSourceSearch

https://www.town-echizen.jp/js/detect_browser.js

js town-echizen.jp collected 2026-10-02 07:19:06 UTC 2,617 bytes, 124 lines download raw bytes

1
2var BrowserDetect = {
3	init: function () {
4		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
5		this.version = this.searchVersion(navigator.userAgent)
6			|| this.searchVersion(navigator.appVersion)
7			|| "an unknown version";
8		this.OS = this.searchString(this.dataOS) || "an unknown OS";
9	},
10	searchString: function (data) {
11		for (var i=0;i<data.length;i++)	{
12			var dataString = data[i].string;
13			var dataProp = data[i].prop;
14			this.versionSearchString = data[i].versionSearch || data[i].identity;
15			if (dataString) {
16				if (dataString.indexOf(data[i].subString) != -1)
17					return data[i].identity;
18			}
19			else if (dataProp)
20				return data[i].identity;
21		}
22	},
23	searchVersion: function (dataString) {
24		var index = dataString.indexOf(this.versionSearchString);
25		if (index == -1) return;
26		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
27	},
28	dataBrowser: [
29		{
30			string: navigator.userAgent,
31			subString: "CriOS",
32			identity: "Chrome"
33		},		
34		{
35			string: navigator.userAgent,
36			subString: "Chrome",
37			identity: "Chrome"
38		},
39		{ 	string: navigator.userAgent,
40			subString: "OmniWeb",
41			versionSearch: "OmniWeb/",
42			identity: "OmniWeb"
43		},
44		{
45			string: navigator.vendor,
46			subString: "Apple",
47			identity: "Safari",
48			versionSearch: "Version"
49		},
50		{
51			prop: window.opera,
52			identity: "Opera"
53		},
54		{
55			string: navigator.vendor,
56			subString: "iCab",
57			identity: "iCab"
58		},
59		{
60			string: navigator.vendor,
61			subString: "KDE",
62			identity: "Konqueror"
63		},
64		{
65			string: navigator.userAgent,
66			subString: "Firefox",
67			identity: "Firefox"
68		},
69		{
70			string: navigator.vendor,
71			subString: "Camino",
72			identity: "Camino"
73		},
74		{		// for newer Netscapes (6+)
75			string: navigator.userAgent,
76			subString: "Netscape",
77			identity: "Netscape"
78		},
79		{
80			string: navigator.userAgent,
81			subString: "MSIE",
82			identity: "Explorer",
83			versionSearch: "MSIE"
84		},
85		{
86			string: navigator.userAgent,
87			subString: "Gecko",
88			identity: "Mozilla",
89			versionSearch: "rv"
90		},
91		
92		{ 		// for older Netscapes (4-)
93			string: navigator.userAgent,
94			subString: "Mozilla",
95			identity: "Netscape",
96			versionSearch: "Mozilla"
97		}
98	],
99	dataOS : [
100		{
101			string: navigator.platform,
102			subString: "Win",
103			identity: "Windows"
104		},
105		{
106			string: navigator.platform,
107			subString: "Mac",
108			identity: "Mac"
109		},
110		{
111			   string: navigator.userAgent,
112			   subString: "iPhone",
113			   identity: "iPhone/iPod"
114	    },
115		{
116			string: navigator.platform,
117			subString: "Linux",
118			identity: "Linux"
119		}
120	]
121 
122};
123
124BrowserDetect.init();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.