/* Do not copy this file. Instead, do something like this in your own code. if (!window.WebGLRenderingContext) { // Browser has no idea what WebGL is. Suggest they // get a new browser by presenting the user with link to // http://get.webgl.org return; } gl = canvas.getContext("webgl"); if (!gl) { // Browser could not initialize WebGL. User probably needs to // update their drivers or get a new browser. Present a link to // http://get.webgl.org/troubleshooting return; } */ var BrowserDetect = { init: function () { var info = this.searchString(this.dataBrowser) || {identity:"unknown"} this.browser = info.identity; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.platformInfo = this.searchString(this.dataPlatform) || this.dataPlatform["unknown"]; this.platform = this.platformInfo.identity; var browserInfo = this.urls[this.browser]; if (!browserInfo) { browserInfo = this.urls["unknown"]; } else if (browserInfo.platforms) { var info = browserInfo.platforms[this.platform]; if (info) { browserInfo = info; } } this.urls = browserInfo; }, searchString: function (data) { for (var i = 0; i < data.length; i++){ var info = data[i]; var dataString = info.string; var dataProp = info.prop; this.versionSearchString = info.versionSearch || info.identity; if (dataString) { if (dataString.indexOf(info.subString) != -1) { var shouldExclude = false; if (info.excludeSubstrings) { for (var ii = 0; ii < info.excludeSubstrings.length; ++ii) { if (dataString.indexOf(info.excludeSubstrings[ii]) != -1) { shouldExclude = true; break; } } } if (!shouldExclude) return info; } } else if (dataProp) { return info; } } }, searchVersion: function (dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) { return; } return parseFloat(dataString.substring( index + this.versionSearchString.length + 1)); }, dataBrowser: [ { string: navigator.userAgent, subString: "Chrome", excludeSubstrings: ["OPR/", "Edge/"], identity: "Chrome" }, { string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb" }, { string: navigator.vendor, subString: "Apple", identity: "Safari", versionSearch: "Version" }, { string: navigator.vendor, subString: "Opera", identity: "Opera" }, { string: navigator.userAgent, subString: "Android", identity: "Android" }, { string: navigator.vendor, subString: "iCab", identity: "iCab" }, { string: navigator.vendor, subString: "KDE", identity: "Konqueror" }, { string: navigator.userAgent, subString: "Firefox", identity: "Firefox" }, { string: navigator.vendor, subString: "Camino", identity: "Camino" }, {// for newer Netscapes (6+) string: navigator.userAgent, subString: "Netscape", identity: "Netscape" }, { string: navigator.userAgent, subString: "Edge/", identity: "Edge" }, { string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" }, { // for IE11+ string: navigator.userAgent, subString: "Trident", identity: "Explorer", versionSearch: "rv" }, { string: navigator.userAgent, subString: "Gecko", identity: "Mozilla", versionSearch: "rv" }, { // for older Netscapes (4-) string: navigator.userAgent, subString: "Mozilla", identity: "Netscape", versionSearch: "Mozilla" } ], dataPlatform: [ { string: navigator.platform, subString: "Win", identity: "Windows", browsers: [ {url: "http://www.mozilla.com/en-US/firefox/new/", name: "Mozilla Firefox"}, {url: "http://www.opera.com/", name: "Opera"}, {url: "http://www.google.com/chrome/", name: "Google Chrome"}, {url: "http://www.microsoft.com/en-us/windows/windows-10-upgrade ", name: "Edge"}, {url: "http://www.microsoft.com/ie", name: "Internet Explorer"} ] }, { string: navigator.platform, subString: "Mac", identity: "Mac", browsers: [ {url: "http://www.mozilla.com/en-US/firefox/new/", name: "Mozilla Firefox"}, {url: "http://www.google.com/chrome/", name: "Google Chrome"}, {url: "http://www.opera.com/", name: "Opera"}, {url: "http://www.webkit.org/", name: "WebKit Developer Builds"} ] }, { string: navigator.userAgent, subString: "iPhone", identity: "iPhone/iPod", browsers: [ {url: "http://www.mozilla.com/en-US/firefox/new/", name: "Mozilla Firefox"} ] }, { string: navigator.platform, subString: "iPad", identity: "iPad", browsers: [ {url: "http://www.mozilla.com/en-US/firefox/new/", name: "Mozilla Firefox"} ] }, { string: navigator.userAgent, subString: "Android", identity: "Android", browsers: [ {url: "https://market.android.com/details?id=org.mozilla.firefox", name: "Mozilla Firefox"}, {url: "https://market.android.com/details?id=com.opera.browser", name: "Opera Mobile"} ] }, { string: navigator.platform, subString: "Linux", identity: "Linux", browsers: [ {url: "http://www.mozilla.com/en-US/firefox/new/", name: "Mozilla Firefox"}, {url: "http://www.google.com/chrome/", name: "Google Chrome"}, {url: "http://www.opera.com/", name: "Opera"} ] }, { string: "unknown", subString: "unknown", identity: "unknown", browsers: [ {url: "http://www.mozilla.com/en-US/firefox/new/", name: "Mozilla Firefox"}, {url: "http://www.google.com/chrome/", name: "Google Chrome"}, {url: "http://www.opera.com/", name: "Opera"}, {url: "http://www.webkit.org/", name: "WebKit Developer Builds"} ] } ], /* upgradeUrl: Tell the user how to upgrade their browser. troubleshootingUrl: Help the user. platforms: Urls by platform. See dataPlatform.identity for valid platform names. */ urls: { "Chrome": { upgradeUrl: "http://www.google.com/support/chrome/bin/answer.py?answer=95346", troubleshootingUrl: "http://www.google.com/support/chrome/bin/answer.py?answer=1220892" }, "Firefox": { upgradeUrl: "http://www.mozilla.com/en-US/firefox/new/", troubleshootingUrl: "https://support.mozilla.com/en-US/kb/how-do-i-upgrade-my-graphics-drivers" }, "Opera": { platforms: { "Android": { upgradeUrl: "https://market.android.com/details?id=com.opera.browser", troubleshootingUrl: "http://www.opera.com/support/" } }, upgradeUrl: "http://www.opera.com/", troubleshootingUrl: "http://www.opera.com/support/" }, "Android": { upgradeUrl: null, troubleshootingUrl: null }, "Safari": { platforms: { "iPhone/iPod": { upgradeUrl: "http://www.apple.com/ios/", troubleshootingUrl: "http://www.apple.com/support/iphone/" }, "iPad": { upgradeUrl: "http://www.apple.com/ios/", troubleshootingUrl: "http://www.apple.com/support/ipad/" }, "Mac": { upgradeUrl: "http://www.webkit.org/", troubleshootingUrl: "https://support.apple.com/kb/PH21426" } }, upgradeUrl: "http://www.webkit.org/", troubleshootingUrl: "https://support.apple.com/kb/PH21426" }, "Explorer": { upgradeUrl: "http://www.microsoft.com/ie", troubleshootingUrl: "http://msdn.microsoft.com/en-us/library/ie/bg182648(v=vs.85).aspx" }, "Edge": { upgradeUrl: "http://www.microsoft.com/en-us/windows/windows-10-upgrade", troubleshootingUrl: "http://msdn.microsoft.com/en-us/library/ie/bg182648(v=vs.85).aspx" }, "unknown": { upgradeUrl: null, troubleshootingUrl: null } } };