1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Unterschiedlicher Source in IE und Firefox???

  • thrasher
  • 25. Januar 2007 um 00:59
  • Unerledigt
  • thrasher
    8
    thrasher
    Mitglied
    Punkte
    625
    Beiträge
    90
    • 25. Januar 2007 um 00:59
    • #1

    Schönen Abend!

    WTF?
    Ich weiß ja dass IE und Firefox bei clientseitigen Scripts Probleme machen aber was hat das mit PHP zu tun?

    Grund der Verwirrung ist folgender Source:

    Code
    <?
        $height = $_GET['height'];
        $width = $_GET['width'];
        if($height == "" || $width == ""){
            echo "<script language=\"JavaScript\" type=\"text/JavaScript\"> \n";
            echo "<!--\n";
            echo "var width;\n";
            echo "var height;\n";
            echo "if ( window.innerWidth && window.innerHeight && window.innerWidth != \"undefined\" && window.innerHeight != \"undefined\") {\n";
            echo "    width = window.innerWidth;\n";
            echo "    height = window.innerHeight;\n";
            echo "} else if ( document.body && document.body.offsetWidth && document.body.offsetHeight ) {\n";
            echo "    width = document.body.offsetWidth;\n";
            echo "    height = document.body.offsetHeight;\n";
            echo "}\n";
            echo "location.href = \"index.php?width=\"+width+\"&height=\"+height;\n";
            echo "//->\n";
            echo "</script>\n";
        }
    ?>
    Alles anzeigen

    Sprich, wenn php keine GET-Variablen bekommt, soll ein Javascript eingefügt werden, das die Seite mit den GET-Variablen neu lädt.
    Dann:

    Code
    <script language="javascript">
        function reload() {
            var nwidth;
            var nheight;
            if ( window.innerWidth && window.innerHeight && window.innerWidth != "undefined" && window.innerHeight != "undefined") {
                nwidth = window.innerWidth;
                nheight = window.innerHeight;
            } else if ( document.body && document.body.offsetWidth && document.body.offsetHeight ) {
                nwidth = document.body.offsetWidth;
                nheight = document.body.offsetHeight;
            }
            location.href = "index.php?width="+nwidth+"&height="+nheight;
        }
        window.onresize = reload;
    </script>
    Alles anzeigen

    Wird das Fenster "resized", wird wieder neu geladen.
    Erst wird abgefragt ob window.innerWidth bekannt ist und nicht "undefined" liefert, wenn das nicht der Fall ist (IE) werden die Werte vom document verwendet.

    In Firefox sieht diese Abfrage im Source in beiden Fällen so aus:

    Code
    if ( window.innerWidth && window.innerHeight && window.innerWidth != "undefined" && window.innerHeight != "undefined") {
        width = window.innerWidth;
        height = window.innerHeight;
    } else if ( document.body && document.body.offsetWidth && document.body.offsetHeight ) {
        width = document.body.offsetWidth;
        height = document.body.offsetHeight;
    }
    location.href = "index.php?width="+width+"&height="+height;


    Im IE allerdings so:

    Code
    if ( window.innerWidth && window.innerHeight ) {
        width = window.innerWidth;
        height = window.innerHeight;
    } else if ( document.body && document.body.offsetWidth && document.body.offsetHeight ) {
        width = document.body.offsetWidth;
        height = document.body.offsetHeight;
    }
    location.href = "index.php?width="+width+"&height="+height;


    Wem fällt was auf? :winking_face:
    Der kleine, feine Unterschied ist, dass IE7 window.innerWidth sehr wohl kennt aber "undefined" zurückliefert, weshalb dieser Kas natürlich ned funktioniert.

    Vorschläge warum das so ist oder besser, wie man es umgeht? Ich bekomm nämlich schon Migräne

    Und sorry für den ewig langen Post :winking_face:
    Robert

    edit: Ärger seltsam
    Hab die Reihenfolge der Abfrage geändert, sodass zuerst IE erkannt wird und wenns keiner ist, kommt Firefox dran. Firefox hat den neuen Source richtig angezeigt, IE zeigt noch immer den alten an!
    Hab ein bissl Text eingefügt, der wird im IE angezeigt, die Scripts sind unverändert...


    http://openbrew.sourceforge.net/

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung