Auch Entwickler brauchen Platz zum Spielen

2. Februar 2009 /

JavaScript: Flinke Möglichkeit den verwendeten Browser zu erkennen

Aktuelle Browser-Vielfalt und eigenwillige Unterstützung der Web-Standards zwingen Entwickler dazu, den Programmiercode mit ausgefeilten Weichen für die einheitliche Darstellung und korrekte Funktionsweise zu versehen. In den Stylesheets können Deklarierungen mithilfe von CSS-Hacks Browser-spezifisch hinterlegt werden. In Javascript ist die Angelegenheit nicht ganz trivial und so müsste navigator.userAgent abgefragt und abgeglichen werden. Doch es geht auch unbürokratischer und fixer.

jQuery als Helfer
Als Entwickler von WordPress Plugins und Themes greift man bestenfalls auf die jQuery-Bibliothek zu, die WordPress im Auslieferungszustand beinhaltet – dort liegt die Information über den vom Anwender eingesetzten Browser in jQuery.browser jederzeit zum Abruf bereit. Findet jQuery im Plugin oder Theme jedoch keinen anderweitigen Einsatz, so lohnt es sich meistens nicht, nur wegen einer Browser-Abfrage die nicht ganz winzige JavaScript-Library in die Blogseite zu laden.

Knapp und rasant
Nachfolgend werden sehr smarte und zuverlässig funktionierende JS-Techniken für die Browser-Erkennung vorgestellt – ohne Prüfungen des UserAgent. Beispielsweise lässt sich der Internet Explorer in nur 12 Bytes identifizieren. Film ab!

// Firefox 2/3
FF=/a/[-1]=='a'
// Firefox 3
FF3=(function x(){})[-5]=='x'
// Firefox 2
FF2=(function x(){})[-6]=='x'
// Internet Explorer 6/7/8:
IE='v'=='v'
// Safari:
Saf=/a/.__proto__=='//'
// Chrome
Chr=/source/.test((/a/.toString+''))
// Opera
Op=/^function (/.test([].sort)
// Erkennung in einer Zeile
B=(function x(){})[-5]=='x'?'FF3':(function x(){})[-6]=='x'?'FF2':/a/[-1]=='a'?'FF':'v'=='v'?'IE':/a/.__proto__=='//'?'Saf':/s/.test(/a/.toString)?'Chr':/^function (/.test([].sort)?'Op':'Unknown'

Quelle: THE SPANNER

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.