Heim >Web-Frontend >js-Tutorial >Wie kann ich Benutzerbrowser zuverlässig erkennen, ohne Benutzeragentenzeichenfolgen zu verwenden?

Wie kann ich Benutzerbrowser zuverlässig erkennen, ohne Benutzeragentenzeichenfolgen zu verwenden?

DDD
DDDOriginal
2024-12-25 01:16:15863Durchsuche

How Can I Reliably Detect User Browsers Without Using User Agent Strings?

Erkennen von Benutzerbrowsern ohne User-Agent-Strings

Erkennen von Browsertypen

Bei der Entwicklung von Erweiterungen für mehrere Browser ist es wichtig, Folgendes zu tun Identifizieren Sie den Browser des Benutzers genau, um ihn auf die entsprechende Download-Seite weiterzuleiten. Allerdings ist es aufgrund der Anfälligkeit für Spoofing unzuverlässig, sich bei der Browsererkennung auf die Zeichenfolge des Benutzeragenten zu verlassen.

Duck-Typing für genaue Browsererkennung

Um dieses Problem zu beheben, a Es wird ein Duck-Typing-Ansatz verwendet. Duck-Typing konzentriert sich auf das Verhalten und die Eigenschaften des Browsers und verlässt sich nicht auf eine bestimmte Signatur oder Identifikationszeichenfolge. Diese Methode ist robuster und weniger anfällig für Spoofing.

Demo und Implementierung

Im bereitgestellten JavaScript-Code werden verschiedene Prüfungen durchgeführt, um die gängigen Browser, einschließlich Firefox, zu identifizieren , Chrome, Safari, Opera, IE, Edge und Edge Chromium. Bei jeder Prüfung werden die einzigartigen Merkmale des Browsers untersucht, um eine genaue Erkennung sicherzustellen.

Feature-Erkennung vor Browser-Erkennung

Während die Browser-Erkennung manchmal notwendig ist, wird im Allgemeinen empfohlen, der Feature-Erkennung Vorrang einzuräumen möglich. Bei der Funktionserkennung wird überprüft, ob bestimmte Browserfunktionen vorhanden oder nicht vorhanden sind, um eine bessere Robustheit und Kompatibilität mit zukünftigen Browserversionen sicherzustellen.

Codebeispiel

Das folgende Codefragment liefert die Auf Ententypisierung basierende Browsererkennungsmethode:

// Duck-typing browser detection

var isFirefox = typeof InstallTrigger !== 'undefined';
var isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || (typeof safari !== 'undefined' && window['safari'].pushNotification));
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
var isIE = /*@cc_on!@*/false || !!document.documentMode;
var isEdge = !isIE && !!window.StyleMedia;
var isEdgeChromium = isChrome && (navigator.userAgent.indexOf("Edg") != -1);
var isBlink = (isChrome || isOpera) && !!window.CSS;

Das obige ist der detaillierte Inhalt vonWie kann ich Benutzerbrowser zuverlässig erkennen, ohne Benutzeragentenzeichenfolgen zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn