let browserName = navigator.appName; let fullVersion = `${parseFloat(navigator.appVersion)}`; let nameOffset, verOffset, ix; // In Opera, the true version is after "OPR" or after "Version" if ((verOffset = navigator.userAgent.indexOf("OPR")) != -1) { browserName = "Opera"; fullVersion = navigator.userAgent.slice(verOffset + 4); if ((verOffset = navigator.userAgent.indexOf("Version")) != -1) fullVersion = navigator.userAgent.slice(verOffset + 8); } // In MS Edge, the true version is after "Edg" in userAgent else if ((verOffset = navigator.userAgent.indexOf("Edg")) != -1) { browserName = "Microsoft Edge"; fullVersion = navigator.userAgent.slice(verOffset + 4); } // In MSIE, the true version is after "MSIE" in userAgent else if ((verOffset = navigator.userAgent.indexOf("MSIE")) != -1) { browserName = "Microsoft Internet Explorer"; fullVersion = navigator.userAgent.slice(verOffset + 5); } // In Chrome, the true version is after "Chrome" else if ((verOffset = navigator.userAgent.indexOf("Chrome")) != -1) { browserName = "Chrome"; fullVersion = navigator.userAgent.slice(verOffset + 7); } // In Safari, the true version is after "Safari" or after "Version" else if ((verOffset = navigator.userAgent.indexOf("Safari")) != -1) { browserName = "Safari"; fullVersion = navigator.userAgent.slice(verOffset + 7); if ((verOffset = navigator.userAgent.indexOf("Version")) != -1) fullVersion = navigator.userAgent.slice(verOffset + 8); } // In Firefox, the true version is after "Firefox" else if ((verOffset = navigator.userAgent.indexOf("Firefox")) != -1) { browserName = "Firefox"; fullVersion = navigator.userAgent.slice(verOffset + 8); } // In most other browsers, "name/version" is at the end of userAgent else if ( (nameOffset = navigator.userAgent.lastIndexOf(' ') + 1) < (verOffset = navigator.userAgent.lastIndexOf('/') ) ) { browserName = navigator.userAgent.slice(nameOffset,verOffset); fullVersion = navigator.userAgent.slice(verOffset + 1); if (browserName.toLowerCase() == browserName.toUpperCase()) browserName = navigator.appName; } // Trim the fullVersion string at semicolon/space if present if ((ix = fullVersion.indexOf(";")) != -1) fullVersion = fullVersion.slice(0, ix); if ((ix = fullVersion.indexOf(" ")) != -1) fullVersion = fullVersion.slice(0, ix); console.log(`${browserName} ${fullVersion}`);