Script geht nicht?

  • Hab mir mal von einer Website ein Script runterkopiert, dass unter einer bestimmten Fenstergröße auf eine andere Datei umschaltet, bei mir lautet es wie folgt:

    <script type="text/javascript">
    if (screen.width<600)
    window.location = "Mobile.html";
    </script>

    Die Datei befindet sich im gleichen Ordner, aber ich kann das Fenster so klein machen, wie ich will, es schaltet nicht auf die Datei um :(. Und ja, das Script befindet sich im Header. Ich benutze Google Chrome, seit Firefox sich kaum mehr regt. In den Optionen ist JavaScript aktiviert, also sollte es eigentlich ja keine Probleme geben.

    Wenn einer einen Fehler im Code entdeckt, soll er den Fehler bitte ausbessern, den Code habe ich übrigens nicht im Source-Code gefunden, sondern es war ein Blog, in dem er gepostet wurde.

    Danke im Voraus.

  • screen ist das vordefinierte Objekt für die Bildschirmauflösung. Da kannst du das Fenster gerne vergrössern und verkleinern wie du magst, das ändert die Auflösung ja nicht :D

    Grösse das Anzeigefensters kriegst du über window.innerWidth und window.innerHeight. Natürlich nicht im IE6 oder älter, aber da findest du Alternativen die das machen.. wobei der Aufwand das nicht wert ist, IE6-User kriegen von mir einfach kein JavaScript.

    Einmal editiert, zuletzt von gandro (1. Juli 2012 um 10:12)

  • Kannst ja sicherheitshalber beides abfragen:

    <script type="text/javascript">
    if (screen.width<600 || window.innerWidth<600)
    window.location = "Mobile.html";
    </script>

  • OK, danke, hab irgendwo noch ein Netbook, bei dem man die Bildschirmauflösung auf das Niveau vom Samsung Galaxy Y (320x240px) XD. Aber da sind Ladekabel und Akku defekt, also werde ich's auf meinem Galaxy Ace (320x480px) testen.

    mrshadowtux: Jo, aber es gibt ja 3,8 Zoll-Bildschirme mit einer Auflösung wie 480x800, da wird es schon etwas problematisch, also frag' ich besser nur die Breite ab, ich will ja nicht, dass Benutzer vom Ace 2 im Gegensatz zu anderen scrollen müssen ;).

    EDIT: Seltsam, geht net :(. werde deinen Rat mal beherzigen, vielleicht hilfts was.

    EDIT 2: Jup, so gehts, aber müssen Nutzer vom Ace 2 und ähnlichen Smartphones die Desktop-Version benutzen? sonst mach ich einen Link, der einen zur Mobile-Version führt, falls es Probleme gibt.

    Aber danke erstmal, werde mich melden, wenn's sonst noch Probleme mit dem Script gibt.

  • Wobei viele Telefone inzwischen auch in der Breite mehr als 600px haben. Auflösungsbasiert arbeiten ist keine clevere Idee, ich würde stattdessen auf den Browser achten. Wir hier im Forum verwenden z.B. folgende Strings:

    Spoiler anzeigen

    iPhone
    iPod
    mobile
    Android
    Opera Mini
    BlackBerry
    IEMobile
    Windows Phone
    HTC
    Nokia
    Netfront
    SmartPhone
    Symbian
    SonyEricsson
    AvantGo
    DoCoMo
    Pre/
    UP.Browser

    Nachtrag, Beispiel:

    Code
    var mobileUAs = "iPhone|iPod|mobile|Android|Opera Mini|BlackBerry|IEMobile|"+
                    "Windows Phone|HTC|Nokia|Netfront|SmartPhone|Symbian|"+
                    "SonyEricsson|AvantGo|DoCoMo|Pre/|UP.Browser";
    
    
    if(navigator.userAgent.match(new RegExp(mobileUAs))) {
        window.location = "Mobile.html";
    }

    Ansonsten gibt es hier ein JavaScript wo du unten einfach deine Mobilseite einfügen kannst und es macht eine automatische Regex auf den Browser: http://detectmobilebrowsers.com/

    Einmal editiert, zuletzt von gandro (1. Juli 2012 um 11:06)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!