Javascript soll nur IE einschließen, Opera will aber auch :/

  • Hi!

    Code
    <!--[if IE]>   
     document.write('blablabla');
    <![endif]-->

    Mit diesem Script wollte ich IE Nutzer durch einen Text erklären, warum die Seite mit ihrem Browser nicht richtig angezeigt werden kann. Im FX klappt das super, als ich es aber in Opera testete, musste ich feststellen, dass der den Text auch anzeigt, obwohl er ja nicht gerade ein "IE" ist... woran kann das liegen? Ich hab nicht viel Ahnung von Sripten, aber eigentlich sollte das doch so gehen (im Fx wird ja auch nichts angezeig, so wie es sein soll...)

    Bin für Tipps und Lösungen sehr dankbar!

    Grüße, Ebu

    Einmal editiert, zuletzt von Ebukadneza (19. November 2006 um 14:23)

  • Ist Opera auf "Als IE ausgeben" eingestellt? Oder fehlt beispielsweise eine korrekte DTD? Dann schaltet Opera in den IE-Kompatibilitätsmodus, was imho unter anderem heißt, dass IE-only-Sachen mit angezeigt werden.

    So weit ich weiß wird sogar das Box-Model des IE übernommen.

    Wenn dem nicht so ist, wende dich vertrauensvoll ans Opera-Forum, da musst du dich nicht anmelden und trotz aller Horrormeldungen wird dir da in der Regel kompetent geholfen.

    EDIT: Was war denn das Problem?

    Quis custodit custodes?

  • hi wupperbayer!

    Sorry, mnit dem Edit meinte ich nur die Darstellung im Forum, habs besser weg gemacht.

    Ne, die Html-Datei ist komplett valides xhtml 1.1.

    opera ist auf "Opera" eingestellt, hab damit extra rumgespielt... :(

    Naja, ich versuchs dann wohl mal im opera-Forum,d anke für den Tipp.

    MfG Erik

  • Code
    <!--[if IE]>   
     document.write('blablabla');
    <![endif]-->


    Gib mal den ganzen Code, denn das kann so nicht stimmen.

    Code
    <!-- -->


    ist immer ein HTML-Kommentar.

    Code
    document.write


    muss aber in einen Scriptbereich. Und dort lauten andere Kommentarregeln.


    Das geht:

    Code
    <!--[if IE]>   
     <script>
      document.write('blablabla');
     </script>
    <![endif]-->


    das wäre falsch:

    Code
    <script>
     <!--[if IE]>  
      document.write('blablabla');
     <![endif]-->
    </script>

    Opera wird vermutlich den fehlerhaft Positionierten HTML-Kommentar für IE innerhalb des Script-Bereiches ignorieren und den Rest einfach behandeln wie einen normalen Scriptbereich, also einfach ausführen. Wohl aber auch nur Aufgrund von Fehlertoleranz. Wie gesagt: bitte mal alles zeigen ; )

  • Hey, bugcatcher, du machst deinem Namen alle Ehre! In der Tat war es schlicht und ergreifend so, dass ich direkt in das Script (also in eine extern 'verlinkte 'bla.js) den if Teil mit dem IE gesetzt hatte und nicht anders rum. Dankeschön!!!
    Interessant, dass Firefox das ganz trotz allem akzeptiert hatte...

    Viele Grüße, Ebu

  • Zitat von Ebukadneza

    Interessant, dass Firefox das ganz trotz allem akzeptiert hatte...


    Leider passiert es öfters das Firefox diverse Fehler einfach schluckt, das finde ich nicht gut...

    MfG
    Alexs

  • Wenn Firefox keine Fehler schlucken würde, frage ich mich wieviele Seiten man dann nicht sehen würde :wink:

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • Das ist aber nicht der Sinn wenn ein Browser falsche Seiteninhalten als richtig interpretiert (IE mal ausgenommen).
    Mit Opera sieht man es manchmal ganz deutlich wenn eine fehlerhafte Seite zerschossen ist und in IE und Fx nicht...

    Ich würde mir von Firefox weniger Fehlertoleranz wünschen, dann würden Firefox-freundliche Webseitenautoren mehr fehlerfreie Seiten zu schreiben.

    (Sorry für das Off Topic)

    MfG
    Alexs

  • 1.) das Firefox in diesem Fall NICHTS anzeigt, ist eigentlich das einzig vernünftige, da ein Syntaxfehler innerhalb des Scriptbereiches vorliegt.

    2.) würde Firefox keine Fehlerkorrektur betreiben, könnte man sich höchstens 0.3% der Seiten weltweit ansehen, der Rest strotzt nur so von kleinen und grösseren Fehler.

    3.) Opera betreibt auch einen Haufen an Fehlerkorrektur, nur halt andere als IE oder Fx, denn für Fehlerkorrektur gibt es halt keinerlei Richtlinien.

    4.) Browser die keinerlei Fehlerkorrektur betreiben, wären auf dem Massenmarkt nicht einsetzbar. Bedanken darf man sich bezüglich diesen Umstandes bei Netscape und Microsoft, die das als tolle Idee empfanden und salonfähig gemacht haben.

    5.) Firefox ist in vielen Bereichen sehr strikt, besonders was standardfremde Elemente angeht, im Gegensatz zu Opera. Besonders dann, wenn man ihm sagt, er soll strikt sein (docType). Immer Quirk- und Standardmodus trennen, sonst wird Unrecht getan.

  • Nur um nochmal gaaanz kurz was zum Thema zu sagen:
    Ich habe garnicht gewusst, dass ich diesen Tag einfach auch ohne JS benutzen kann. Somit brauche ich ja das ganze gewurschtel garnicht :oops::lol:
    Aber danke für all die Tipps und Codevorschläge, hab auf jedenfall was gelernt :)

    Grüße, Ebu

  • So wie ich es eben gesagt habe:


    Code
    <!--[if IE]>    
    <div id="iewarnung"><p>Du surfst gerade mit dem schlechtesten Browser! Es gibt alternativen. Nimm dir die Zeit und suche dir einen vernünftigen Browser aus. <a href="iealternative.html">Weiter...</a></p></div>
    <![endif]-->

    und dann noch mit stylesheets #iewarnung einen roten Hintergrund zuweisen. Und damit es auch schön nervt, blinkenden Text. :twisted:

    Edit1: gelöscht
    Edit2: gelöscht
    Edit3: ok, jetzt geht es

  • Lord-Ali:

    Du musst in deinem Beitrag "HTML in diesem Beitrag deaktivieren" anklicken (vgl. erste Sätze des 2ten Kommentars von mir oben *g*)

    Ich hatte deinen ersten Beitrag leider rein garnicht verstanden, aber nun, da ich weiß, was du meintest, ist es klar...
    Mal schaun, erstmal reicht der reine Kommentar (die Seite ist eh eher für mich und ein paar Freunde, die ich sowieso schon zum Fx bekehrt habe^^)

    Grüße, Erik