Browser unterscheiden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Browser unterscheiden

    Hi!

    Ich wollte per PHP je nach Nutzung des IE oder [coderwiki]Informationen/Mozilla[/coderwiki]/Firefox einen anderen Code einbauen. (Grund: IE und [coderwiki]Informationen/Firefox[/coderwiki] interpretieren CSS teilweise anders :/ )

    Das wollte ich per $_SERVER['HTTP_USER_AGENT'] realisieren.
    In der Variable müsste man dann nur nach einem Ausdruck suchen, um die beiden [coderwiki]Informationen/Browser[/coderwiki] zu unterscheiden.
    Ich hab auch mal getestet, was ausgegeben wird:

    Quellcode

    1. <? print $_SERVER['HTTP_USER_AGENT']; ?>

    Test mit meinem Mozilla: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-AT; rv:1.7.11) Gecko/20050728
    Test mit meinem IE: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

    Nun versteht ihr vllt meine Verwirrung.
    Könnt ihr mir weiterhelfen, damit ich den Browser einfach abgefragt bekomme?
  • Na dann versuchs ichs so:

    Quellcode

    1. if (navigator.userAgent.indexOf("Netscape") > 0){ document.write("<link rel=\"stylesheet\" href=\"css/design.netscape.css\" type=\"text/css\">");}
    2. if (navigator.userAgent.indexOf("MSIE") > 0 && navigator.userAgent.indexOf("Opera") < 0){ document.write("<link rel=\"stylesheet\" href=\"css/design.ie.css\" type=\"text/css\">");}
    3. if (navigator.userAgent.indexOf("Opera") > 0){ document.write("<link rel=\"stylesheet\" href=\"css/design.netscape.css\" type=\"text/css\">");}


    Problem: Mozilla wird nicht erkannt!


    Edit: gelöst!

    Quellcode

    1. if (navigator.userAgent.indexOf("Netscape") > 0){ document.write("<link rel=\"stylesheet\" href=\"css/design.ie.css\" type=\"text/css\">");}
    2. if (navigator.userAgent.indexOf("Gecko") > 0){ document.write("<link rel=\"stylesheet\" href=\"css/design.mozilla.css\" type=\"text/css\">");}
    3. if (navigator.userAgent.indexOf("MSIE") > 0 && navigator.userAgent.indexOf("Opera") < 0){ document.write("<link rel=\"stylesheet\" href=\"css/design.ie.css\" type=\"text/css\">");}
    4. if (navigator.userAgent.indexOf("Opera") > 0){ document.write("<link rel=\"stylesheet\" href=\"css/design.ie.css\" type=\"text/css\">");}

    Sind die CSS Dateien den Browsern richtig zugeordnet? Hab kene Lust alles zu testen! ;)

    geht um diesen Code:

    Quellcode

    1. MOZILLA:
    2. #content {
    3. width:460px;
    4. padding:20px;
    5. }
    6. IE:
    7. #content {
    8. width:500px;
    9. padding:20px;
    10. }
    Alles anzeigen
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • Hab kene Lust alles zu testen!

    Solltest du aber haben. Oder die Bezahlung stimmt nicht. ;) Sie sind übrigens nicht korrekt. Opera und Netscape verhalten sich eher wie Mozilla (vor allem weil Netscape == Mozilla) als der IE.

    Eine alternative Möglichkeit den IE von anderen zu unterscheiden steht hier: http://www.quirksmode.org/css/condcom.html Das geht auch ohne Javascript.

    Der CSS-Codeausschnitt sieht danach aus, als ob du dich mit den box-model problemen vom IE rumplagst. Der IE interpretiert das Boxmodel richtig, wenn du einen korrekten Doctype einfügst und ihn so in den strict-mode versetzt. Mehr dazu steht hier: http://www.quirksmode.org/css/quirksmode.html
    -- Jida
  • "Jida" schrieb:

    Solltest du aber haben. Oder die Bezahlung stimmt nicht. ;)

    Wär geil, wenn ich Geld kriegen würde... :D

    Aber dein Corschlag ist super, den werd ich auf jeden fall mal probieren!
    Ich poste später dann meine Testergebnisse.

    edit:
    Wow!
    Es funktioniert! Das nenn ich mal ne schöne Lösung... ;)
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.