Mam 5 dodatków / rozszerzeń dla FF, Chrome, IE, Opera i Safari.
Jak rozpoznać przeglądarkę użytkownika i przekierować (po kliknięciu przycisku instalacji), aby pobrać odpowiedni dodatek?
Mam 5 dodatków / rozszerzeń dla FF, Chrome, IE, Opera i Safari.
Jak rozpoznać przeglądarkę użytkownika i przekierować (po kliknięciu przycisku instalacji), aby pobrać odpowiedni dodatek?
Odpowiedzi:
Googling w celu niezawodnego wykrywania przeglądarki często powoduje sprawdzenie ciągu agenta użytkownika. Ta metoda nie jest niezawodna, ponieważ fałszowanie tej wartości jest banalne.
Napisałem metodę wykrywania przeglądarek przez pisanie kaczek .
Używaj metody wykrywania przeglądarki tylko wtedy, gdy jest to naprawdę konieczne, na przykład wyświetlając instrukcje dotyczące przeglądarki dotyczące instalacji rozszerzenia. W miarę możliwości korzystaj z funkcji wykrywania.
Demo: https://jsfiddle.net/6spj1059/
// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+ "[object HTMLElementConstructor]"
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && safari.pushNotification));
// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1 - 79
var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
// Edge (based on chromium) detection
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);
// Blink engine detection
var isBlink = (isChrome || isOpera) && !!window.CSS;
var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isEdge: ' + isEdge + '<br>';
output += 'isEdgeChromium: ' + isEdgeChromium + '<br>';
output += 'isBlink: ' + isBlink + '<br>';
document.body.innerHTML = output;
Poprzednia metoda zależy od właściwości silnika renderowania ( -moz-box-sizing
i -webkit-transform
) w celu wykrycia przeglądarki. Te prefiksy zostaną ostatecznie usunięte, więc aby uczynić wykrywanie jeszcze bardziej niezawodnym, przełączyłem się na cechy charakterystyczne dla przeglądarki:
document.documentMode
.StyleMedia
konstruktora. Wyłączenie Trident pozostawia nam Edge.InstallTrigger
chrome
obiekt globalny zawierający kilka właściwości, w tym chrome.webstore
obiekt udokumentowany .chrome.webstore
jest przestarzała i niezdefiniowana w najnowszych wersjachSafariRemoteNotification
, co zostało wprowadzone po wersji 7.1, aby objąć wszystkie Safari od wersji 3.0 i wyższych.window.opera
istnieje od lat, ale zostanie porzucona, gdy Opera zastąpi swój silnik Blink + V8 (używany przez Chromium). chrome
obiekt jest zdefiniowany (ale chrome.webstore
nie jest). Ponieważ Opera próbuje sklonować Chrome, do tego celu używam wąchania agenta użytkownika.!!window.opr && opr.addons
może być używana do wykrywania Opery 20+ (evergreen).CSS.supports()
został wprowadzony w Blink, gdy Google włączył Chrome 28. Jest to oczywiście ten sam Blink, który był używany w Operze.Zaktualizowano w listopadzie 2016 r., Aby obejmował wykrywanie przeglądarek Safari od wersji 9.1.3
Zaktualizowano w sierpniu 2018 r., Aby zaktualizować najnowsze udane testy Chrome, Firefox IE i Edge.
Zaktualizowano w styczniu 2019 r., Aby naprawić wykrywanie chrome (z powodu przestarzałości pliku window.chrome.webstore) i uwzględnić najnowsze udane testy na chrome.
Zaktualizowano w grudniu 2019 roku, aby dodać Edge na podstawie wykrywania Chromium (na podstawie komentarza @Nimesh).
window.chrome.webstore
jest tam zdefiniowane. Nie sprawdziłem tego z rozszerzeniami Firefox. is.js
wspomniany gdzie indziej działa zarówno w rozszerzeniach Chrome, jak i Firefox.
isSafari
nie działa z Safari 10. Będę argumentować, że to złe rozwiązanie (nie że mam dobre). Nie ma gwarancji, że wiele rzeczy, które sprawdzasz, nie zostanie usuniętych LUB nie zostaną dodane przez inne przeglądarki. Każda witryna, która używała tego kodu do sprawdzania Safari, po prostu zepsuła się z aktualizacjami macOS Sierra lub Safari 10 :(
isSafari
nie działa pod <iframe>
Safari 10.1.2
Możesz wypróbować następujący sposób, aby sprawdzić wersję przeglądarki.
<!DOCTYPE html>
<html>
<body>
<p>What is the name(s) of your browser?</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
if((navigator.userAgent.indexOf("Opera") || navigator.userAgent.indexOf('OPR')) != -1 )
{
alert('Opera');
}
else if(navigator.userAgent.indexOf("Chrome") != -1 )
{
alert('Chrome');
}
else if(navigator.userAgent.indexOf("Safari") != -1)
{
alert('Safari');
}
else if(navigator.userAgent.indexOf("Firefox") != -1 )
{
alert('Firefox');
}
else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10
{
alert('IE');
}
else
{
alert('unknown');
}
}
</script>
</body>
</html>
A jeśli potrzebujesz znać tylko wersję przeglądarki IE, możesz wykonać poniższy kod. Ten kod działa dobrze dla wersji IE6 do IE11
<!DOCTYPE html>
<html>
<body>
<p>Click on Try button to check IE Browser version.</p>
<button onclick="getInternetExplorerVersion()">Try it</button>
<p id="demo"></p>
<script>
function getInternetExplorerVersion() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
var rv = -1;
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer, return version number
{
if (isNaN(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))))) {
//For IE 11 >
if (navigator.appName == 'Netscape') {
var ua = navigator.userAgent;
var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) {
rv = parseFloat(RegExp.$1);
alert(rv);
}
}
else {
alert('otherbrowser');
}
}
else {
//For < IE11
alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
}
return false;
}}
</script>
</body>
</html>
chrome
słowa kluczowego w identyfikatorze użytkownika. przykład użytkownika safari -mozilla/5.0 (macintosh; intel mac os x 10_11_5) applewebkit/601.6.17 (khtml, like gecko) version/9.1.1 safari/601.6.17
if(navigator.userAgent.indexOf("Opera") != -1 || navigator.userAgent.indexOf('OPR') != -1 )
Wiem, że użycie lib może być przesadne , ale aby wzbogacić wątek, możesz sprawdzić, jak to zrobić w is.js :
is.firefox();
is.ie(6);
is.not.safari();
is.js
i sprawdź, jak to robią.
Oto kilka wybitnych bibliotek, które obsługują wykrywanie przeglądarki od grudnia 2019 r.
var result = bowser.getParser(window.navigator.userAgent);
console.log(result);
document.write("You are using " + result.parsedResult.browser.name +
" v" + result.parsedResult.browser.version +
" on " + result.parsedResult.os.name);
<script src="https://unpkg.com/bowser@2.7.0/es5.js"></script>
* obsługuje Edge oparty na Chromium
console.log(platform);
document.write("You are using " + platform.name +
" v" + platform.version +
" on " + platform.os);
<script src="https://cdnjs.cloudflare.com/ajax/libs/platform/1.3.5/platform.min.js"></script>
console.log($.browser)
document.write("You are using " + $.browser.name +
" v" + $.browser.versionNumber +
" on " + $.browser.platform);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.min.js"></script>
var result = detect.parse(navigator.userAgent);
console.log(result);
document.write("You are using " + result.browser.family +
" v" + result.browser.version +
" on " + result.os.family);
<script src="https://cdnjs.cloudflare.com/ajax/libs/Detect.js/2.2.2/detect.min.js"></script>
console.log(BrowserDetect)
document.write("You are using " + BrowserDetect.browser +
" v" + BrowserDetect.version +
" on " + BrowserDetect.OS);
<script src="https://kylemit.github.io/libraries/libraries/BrowserDetect.js"></script>
Na wypadek, gdyby ktokolwiek uznał to za przydatne, zmieniłem odpowiedź Roba W w funkcję, która zwraca ciąg przeglądarki, a nie wiele zmiennych. Ponieważ przeglądarka nie może się tak naprawdę zmienić bez ponownego ładowania, sprawiłem, że wyniki zostały zapisane w pamięci podręcznej, aby nie musiało to działać przy następnym wywołaniu funkcji.
/**
* Gets the browser name or returns an empty string if unknown.
* This function also caches the result to provide for any
* future calls this function has.
*
* @returns {string}
*/
var browser = function() {
// Return cached result if avalible, else get result then cache it.
if (browser.prototype._cachedResult)
return browser.prototype._cachedResult;
// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+ "[object HTMLElementConstructor]"
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);
// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
var isChrome = !!window.chrome && !!window.chrome.webstore;
// Blink engine detection
var isBlink = (isChrome || isOpera) && !!window.CSS;
return browser.prototype._cachedResult =
isOpera ? 'Opera' :
isFirefox ? 'Firefox' :
isSafari ? 'Safari' :
isChrome ? 'Chrome' :
isIE ? 'IE' :
isEdge ? 'Edge' :
isBlink ? 'Blink' :
"Don't know";
};
console.log(browser());
window.chrome.webstore
została usunięta w Chrome 71, więc to podejście nie działa.
Krótki wariant
var browser = (function() {
var test = function(regexp) {
return regexp.test(window.navigator.userAgent);
}
switch (true) {
case test(/edg/i): return "edge";
case test(/opr/i) && (!!window.opr || !!window.opera): return "opera";
case test(/chrome/i) && !!window.chrome: return "chrome";
case test(/trident/i): return "ie";
case test(/firefox/i): return "firefox";
case test(/safari/i): return "safari";
default: return "other";
}
})();
console.log(browser)
Oto wersja odpowiedzi Roba z 2016 roku, w tym Microsoft Edge i wykrywanie Mrugnięcia:
( edytuj : Zaktualizowałem odpowiedź Roba powyższymi informacjami).
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Firefox 1.0+
isFirefox = typeof InstallTrigger !== 'undefined';
// Safari 3.0+
isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);
// Internet Explorer 6-11
isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
isChrome = !!window.chrome && !!window.chrome.webstore;
// Blink engine detection
isBlink = (isChrome || isOpera) && !!window.CSS;
/* Results: */
console.log("isOpera", isOpera);
console.log("isFirefox", isFirefox);
console.log("isSafari", isSafari);
console.log("isIE", isIE);
console.log("isEdge", isEdge);
console.log("isChrome", isChrome);
console.log("isBlink", isBlink);
Piękno tego podejścia polega na tym, że opiera się on na właściwościach silnika przeglądarki, dlatego obejmuje nawet przeglądarki pochodne, takie jak Yandex lub Vivaldi, które są praktycznie kompatybilne z głównymi przeglądarkami, z których korzystają silniki. Wyjątkiem jest Opera, która opiera się na węszeniu agenta użytkownika, ale dziś (tj. Wer. 15 i więcej) nawet Opera sama jest jedynie powłoką dla Blink.
!!window.MSAssertion;
Test nie działa na mnie w beta krawędzi poprzez Remote Desktop. Zwraca fałsz.
MSAssertion
Sztuczka jest dostosowana do wersji 25. Ale ponieważ wielu programistów polega na maszynach wirtualnych, postaram się ją dostosować do tej starszej wersji. Dobra decyzja. Dzięki.
StyleMedia
(pisany wielkimi literami) jest specyficzny dla IE i Edge i wydaje się, że nigdzie nie zmierza.
Możesz używać try
i catch
używać różnych komunikatów o błędach przeglądarki. IE i Edge były pomieszane, ale użyłem pisania kaczki z Roba W (na podstawie tego projektu tutaj: https://www.khanacademy.org/computer-programming/i-have-opera/2395080328 ).
var getBrowser = function() {
try {
var e;
var f = e.width;
} catch(e) {
var err = e.toString();
if(err.indexOf("not an object") !== -1) {
return "safari";
} else if(err.indexOf("Cannot read") !== -1) {
return "chrome";
} else if(err.indexOf("e is undefined") !== -1) {
return "firefox";
} else if(err.indexOf("Unable to get property 'width' of undefined or null reference") !== -1) {
if(!(false || !!document.documentMode) && !!window.StyleMedia) {
return "edge";
} else {
return "IE";
}
} else if(err.indexOf("cannot convert e into object") !== -1) {
return "opera";
} else {
return undefined;
}
}
};
Dziękuję wszystkim. Testowałem fragmenty kodu tutaj w najnowszych przeglądarkach: Chrome 55, Firefox 50, IE 11 i Edge 38 i wymyśliłem następującą kombinację, która działała dla mnie dla wszystkich z nich. Jestem pewien, że można to poprawić, ale jest to szybkie rozwiązanie dla każdego, kto potrzebuje:
var browser_name = '';
isIE = /*@cc_on!@*/false || !!document.documentMode;
isEdge = !isIE && !!window.StyleMedia;
if(navigator.userAgent.indexOf("Chrome") != -1 && !isEdge)
{
browser_name = 'chrome';
}
else if(navigator.userAgent.indexOf("Safari") != -1 && !isEdge)
{
browser_name = 'safari';
}
else if(navigator.userAgent.indexOf("Firefox") != -1 )
{
browser_name = 'firefox';
}
else if((navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true )) //IF IE > 10
{
browser_name = 'ie';
}
else if(isEdge)
{
browser_name = 'edge';
}
else
{
browser_name = 'other-browser';
}
$('html').addClass(browser_name);
Dodaje klasę CSS do kodu HTML o nazwie przeglądarki.
Nie mam pojęcia, czy jest to przydatne dla każdego, ale tutaj jest wariant, aby uszczęśliwić TypeScript.
export function getBrowser() {
// Opera 8.0+
if ((!!window["opr"] && !!["opr"]["addons"]) || !!window["opera"] || navigator.userAgent.indexOf(' OPR/') >= 0) {
return 'opera';
}
// Firefox 1.0+
if (typeof window["InstallTrigger"] !== 'undefined') {
return 'firefox';
}
// Safari 3.0+ "[object HTMLElementConstructor]"
if (/constructor/i.test(window["HTMLElement"]) || (function(p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof window["safari"] !== 'undefined' && window["safari"].pushNotification))) {
return 'safari';
}
// Internet Explorer 6-11
if (/*@cc_on!@*/false || !!document["documentMode"]) {
return 'ie';
}
// Edge 20+
if (!(/*@cc_on!@*/false || !!document["documentMode"]) && !!window["StyleMedia"]) {
return 'edge';
}
// Chrome 1+
if (!!window["chrome"] && !!window["chrome"].webstore) {
return 'chrome';
}
// Blink engine detection
if (((!!window["chrome"] && !!window["chrome"].webstore) || ((!!window["opr"] && !!["opr"]["addons"]) || !!window["opera"] || navigator.userAgent.indexOf(' OPR/') >= 0)) && !!window["CSS"]) {
return 'blink';
}
}
Wykrywanie przeglądarek na komputerach i urządzeniach mobilnych: Edge, Opera, Chrome, Safari, Firefox, IE
Wprowadziłem kilka zmian w kodzie @nimesh, teraz działa on również dla Edge, a problem Opera został naprawiony:
function getBrowserName() {
if ( navigator.userAgent.indexOf("Edge") > -1 && navigator.appVersion.indexOf('Edge') > -1 ) {
return 'Edge';
}
else if( navigator.userAgent.indexOf("Opera") != -1 || navigator.userAgent.indexOf('OPR') != -1 )
{
return 'Opera';
}
else if( navigator.userAgent.indexOf("Chrome") != -1 )
{
return 'Chrome';
}
else if( navigator.userAgent.indexOf("Safari") != -1)
{
return 'Safari';
}
else if( navigator.userAgent.indexOf("Firefox") != -1 )
{
return 'Firefox';
}
else if( ( navigator.userAgent.indexOf("MSIE") != -1 ) || (!!document.documentMode == true ) ) //IF IE > 10
{
return 'IE';
}
else
{
return 'unknown';
}
}
Dzięki użytkownik @nimesh: 2063564
Istnieje również mniej „hacky” sposób, który działa we wszystkich popularnych przeglądarkach. Google umieściło kontrolę przeglądarki w swojej Bibliotece zamknięcia . W szczególności spójrz na goog.userAgent
i goog.userAgent.product
. W ten sposób jesteś również na bieżąco, jeśli coś zmieni się w sposobie prezentacji się przeglądarki (biorąc pod uwagę, że zawsze uruchamiasz najnowszą wersję kompilatora zamknięcia).
Jeśli chcesz wiedzieć, jaka jest wersja numeryczna określonej przeglądarki, możesz użyć następującego fragmentu kodu. Obecnie poinformuje Cię o wersji Chrome / Chromium / Firefox:
var match = $window.navigator.userAgent.match(/(?:Chrom(?:e|ium)|Firefox)\/([0-9]+)\./);
var ver = match ? parseInt(match[1], 10) : 0;
UAParser jest jedną z lekkich bibliotek JavaScript do identyfikacji przeglądarki, silnika, systemu operacyjnego, procesora oraz typu / modelu urządzenia na podstawie ciągu userAgent.
Dostępna jest sieć CDN. Podałem tutaj przykładowy kod wykrywający przeglądarkę za pomocą UAParser.
<!doctype html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/ua-parser-js@0/dist/ua-parser.min.js"></script>
<script type="text/javascript">
var parser = new UAParser();
var result = parser.getResult();
console.log(result.browser); // {name: "Chromium", version: "15.0.874.106"}
</script>
</head>
<body>
</body>
</html>
Teraz możesz użyć wartości result.browser
warunkowo zaprogramować swoją stronę.
Samouczek źródłowy: Jak wykryć przeglądarkę, silnik, system operacyjny, procesor i urządzenie za pomocą JavaScript?
var BrowserDetect = {
init: function () {
this.browser = this.searchString(this.dataBrowser) || "Other";
this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown";
},
searchString: function (data) {
for (var i = 0; i < data.length; i++) {
var dataString = data[i].string;
this.versionSearchString = data[i].subString;
if (dataString.indexOf(data[i].subString) !== -1) {
return data[i].identity;
}
}
},
searchVersion: function (dataString) {
var index = dataString.indexOf(this.versionSearchString);
if (index === -1) {
return;
}
var rv = dataString.indexOf("rv:");
if (this.versionSearchString === "Trident" && rv !== -1) {
return parseFloat(dataString.substring(rv + 3));
} else {
return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
}
},
dataBrowser: [
{string: navigator.userAgent, subString: "Edge", identity: "MS Edge"},
{string: navigator.userAgent, subString: "MSIE", identity: "Explorer"},
{string: navigator.userAgent, subString: "Trident", identity: "Explorer"},
{string: navigator.userAgent, subString: "Firefox", identity: "Firefox"},
{string: navigator.userAgent, subString: "Opera", identity: "Opera"},
{string: navigator.userAgent, subString: "OPR", identity: "Opera"},
{string: navigator.userAgent, subString: "Chrome", identity: "Chrome"},
{string: navigator.userAgent, subString: "Safari", identity: "Safari"}
]
};
BrowserDetect.init();
var bv= BrowserDetect.browser;
if( bv == "Chrome"){
$("body").addClass("chrome");
}
else if(bv == "MS Edge"){
$("body").addClass("edge");
}
else if(bv == "Explorer"){
$("body").addClass("ie");
}
else if(bv == "Firefox"){
$("body").addClass("Firefox");
}
$(".relative").click(function(){
$(".oc").toggle('slide', { direction: 'left', mode: 'show' }, 500);
$(".oc1").css({
'width' : '100%',
'margin-left' : '0px',
});
});
To łączy oryginalną odpowiedź zarówno Roba i aktualizacji pilaw za 2016
var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
// Opera 8.0+ (UA detection to detect Blink/v8-powered Opera)
var isFirefox = typeof InstallTrigger !== 'undefined'; // Firefox 1.0+
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// At least Safari 3+: "[object HTMLElementConstructor]"
var isChrome = !!window.chrome && !isOpera; // Chrome 1+
var isIE = /*@cc_on!@*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
// Chrome 1+
var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isIE Edge: ' + isEdge + '<br>';
document.body.innerHTML = output;
Tutaj dowiesz się, która przeglądarka jest uruchomiona.
function isValidBrowser(navigator){
var isChrome = navigator.indexOf('chrome'),
isFireFox= navigator.indexOf('firefox'),
isIE = navigator.indexOf('trident') ,
isValidChromeVer = parseInt(navigator.substring(isChrome+7, isChrome+8)) >= 4,
isValidFireForVer = parseInt(navigator.substring(isFireFox+8, isFireFox+9)) >= 3,
isValidIEVer = parseInt(navigator.substring(isIE+8, isIE+9)) >= 7;
if((isChrome > -1 && isValidChromeVer){ console.log("Chrome Browser")}
if(isFireFox > -1 && isValidFireForVer){ console.log("FireFox Browser")}
if(isIE > -1 && isValidIEVer)){ console.log("IE Browser")}
}
Możemy użyć poniższych metod
utils.isIE = function () {
var ver = navigator.userAgent;
return ver.indexOf("MSIE") !== -1 || ver.indexOf("Trident") !== -1; // need to check for Trident for IE11
};
utils.isIE32 = function () {
return (utils.isIE() && navigator.appVersion.indexOf('Win64') === -1);
};
utils.isChrome = function () {
return (window.chrome);
};
utils.isFF64 = function () {
var agent = navigator.userAgent;
return (agent.indexOf('Win64') >= 0 && agent.indexOf('Firefox') >= 0);
};
utils.isFirefox = function () {
return (navigator.userAgent.toLowerCase().indexOf('firefox') > -1);
};
const isChrome = /Chrome/.test(navigator.userAgent)
const isFirefox = /Firefox/.test(navigator.userAgent)
Prosty, pojedynczy wiersz kodu JavaScript podaje nazwę przeglądarki:
function GetBrowser()
{
return navigator ? navigator.userAgent.toLowerCase() : "other";
}
navigator.userAgent
każdą możliwą przeglądarkę, którą masz. Więc to naprawdę nie jest niezawodne, jedynym przypadkiem byłoby, gdyby użytkownik miał tylko jedną przeglądarkę.