Détecter les navigateurs Safari, Chrome, IE, Firefox et Opera avec Duck-Typing
Déterminer le navigateur de l'utilisateur est souvent nécessaire pour le rediriger vers le lien de téléchargement approprié pour les extensions spécifiques au navigateur. Cependant, s'appuyer sur la chaîne de l'agent utilisateur pour la détection du navigateur n'est pas fiable en raison de sa susceptibilité à l'usurpation d'identité.
Une méthode plus fiable, connue sous le nom de « duck-typing », peut être utilisée pour identifier les navigateurs en fonction de leurs caractéristiques spécifiques. Voici une répartition :
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 :
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['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);
Détection de bord (basée sur le chrome) :
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);
Détection du moteur clignotant :
var isBlink = (isChrome || isOpera) && !!window.CSS;
Une fois que vous avez détecté le navigateur à l'aide de ces méthodes, vous pouvez rediriger les utilisateurs vers le lien de téléchargement approprié pour leur extension spécifique au navigateur.
Cependant, il est crucial de souligner que vous ne devez utiliser la détection du navigateur que lorsque cela est nécessaire, par exemple en affichant des instructions d'installation spécifiques au navigateur. En tant que bonne pratique générale, concentrez-vous sur la détection des fonctionnalités autant que possible.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!