Vinzenz Mai: Mobile oder nicht

Beitrag lesen

Hallo,

Habe eine Datei xxx.js mit folgenden Code:

function browser()
{

// User-Agent-String auslesen
var UserAgent = navigator.userAgent.toLowerCase();

// User-Agent auf gewisse Schlüsselwörter prüfen
if(UserAgent.search(/(iphone|ipod|opera mini|fennec|palm|blackberry|android|symbian|series60)/)>-1)

{
document.write("mobile");
}

else

{
document.write("standard");
}

}

  

> Jetzt wollte ich das ganze aber mit eine IF Abfrage abfragen. Leider bekomme ich das nicht zum laufen. Hier mal mein Versuch:  
  
deswegen wäre es viel besser, einen Wert zurückzugeben, statt ins Dokument zu schreiben, bzw. dieses, [wie Martin ausgeführt hat](https://forum.selfhtml.org/?t=205809&m=1395840), zu überschreiben.  
  

> Was micht auch noch interssieren würde, wie weise ich document.write True bzw. False zu oder geht das nicht.  
  
am allereinfachsten ist es, wenn Du verdrängst, dass es document.write() überhaupt gibt. Im Normalfall braucht man das nicht.  
  
Schreiben wir Deine Funktion um. Als erstes möchte ich den Namen ändern. Deine Funktion soll aus dem User-Agent-String ableiten, ob es sich vermutlich um einen mobilen Browser handelt oder nicht:  
  
function isMobileBrowser() {  
}  
  
mit der Implementierung, die sich an Deinem Erstentwurf orientiert:  
  
~~~javascript
function isMobileBrowser() {  
    // gibt true zurück, wenn im User-Agent-String mindestens ein  
    // Schlüsselwort aus einer vorgegebenen Liste vorkommt, das auf  
    // einen mobilen Browser schließen lässt.  
    // gibt sonst false zurück  
  
    var UserAgent = navigator.userAgent.toLowerCase();  
    // User-Agent auf gewisse Schlüsselwörter prüfen  
    return (UserAgent.search(/(iphone|ipod|opera mini|fennec|palm|blackberry|android|symbian|series60)/) > -1);  
}

Besonders wartungsfreundlich ist diese Funktion nicht.
Außerdem scheinst Du iPads nicht als mobile Plattform zu betrachten, Tablets unter Android hingegen schon.

Zum guten Schluss möchte ich Dir noch das Buch Browser user-agent string empfehlen, das gibt's auch in einer deutschen Übersetzung.

Freundliche Grüße

Vinzenz