2. Februar 2009 / Tipps
JavaScript: Flinke Möglichkeit den verwendeten Browser zu erkennen
Simple Lösungsansätze erlauben eine schnelle und zuverlässige Erkennung des verwendeten Browser in JavaScript. Nur 12 Bytes!
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
Sergej Müller ist enthusiastischer Software Engineer mit Schwerpunkten Webentwicklung, Apps und WordPress. Seit 2007 programmiert und vertreibt er wpSEO, das zugkräftige SEO-Plugin für WordPress-Blogs.