Gunnar Bittersmann: Else-Zweig bei Conditional Comments

Hello out there!

IIRC gibts auch die Möglichkeit, HTML-Code-Teile von IEs nicht parsen zu lassen.

Sowas in der Art:
<!--[if IE]>    <p>für IE</p>     <![endif]-->
<!--[!if IE]--> <p>für andere</p> <!--[endif]-->

Wie genau geht das? Hab’s nicht wiedergefunden.

(Überhaupt sind Conditional Comments in SELFHTML sehr schwer zu finden. [BUG1231])

See ya up the road,
Gunnar

-- “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  1. gudn tach Gunnar!

    <!--[if IE]>    <p>für IE</p>     <![endif]-->
    <!--[!if IE]--> <p>für andere</p> <!--[endif]-->

    Wie genau geht das?

    [if !IE], wenn ich den unten verlinkten kram richtig verstanden habe.

    (Überhaupt sind Conditional Comments in SELFHTML sehr schwer zu finden.)

    im msdn dagegen ganz leicht ;-) :
    http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp

    prost
    seth

    1. Hello out there!

      im msdn dagegen ganz leicht ;-) :

      http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp

      Auf diese Seite hatte mich Google auch geführt. Ich hätte sie nur richtig lesen sollen.

      Verschiedene Positionen des '!' hatte ich probiert. Das als Kommentar zu schreiben, war falsch.

      Dumm nur, dass es nicht als Kommentar zu schreiben auch falsch ist:
      <![if !IE]><p>foo</p><![endif]> ist kein valides (X)HTML.

      See ya up the road,
      Gunnar

      PS: “This feature requires Microsoft® Internet Explorer 5 or later. Click the following icon to install the latest version. Then reload this page to view the sample.”

      Netter Versuch. ;-)

      -- “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
      1. Hi!

        Dumm nur, dass es nicht als Kommentar zu schreiben auch falsch ist:
        <![if !IE]><p>foo</p><![endif]> ist kein valides (X)HTML.

        So funktioniert es bei mir:

        <!--[if !IE]--><p>any standard-compliant browser</p><!--<![endif]--> <!--[if !IE]><p>only MSIE</p><![endif]-->
        1. Hallo,

          So funktioniert es bei mir:
          <!--[if !IE]--><p>any standard-compliant browser</p><!--<![endif]-->

          ja, das funktioniert tatsächlich. Aber zeig das mal dem Validator. Der wird dir sagen, dass mit dem "--" vor "<![endif]--> der HTML-Kommentar zu Ende ist, und dass er mit dem folgenden unbekannten Tag "<![endif]-->" nichts anfangen kann.
          Also als Praxislösung okay, aber eben formal nicht ganz astrein. Dann kann man auch gleich die einfache Schreibweise

          <![if !IE]--><p>any standard-compliant browser</p><![endif]>

          verwenden.

          So long,
           Martin

          -- Man gewöhnt sich an allem, sogar am Dativ.
          1. Hi,

            <!--[if !IE]--><p>any standard-compliant browser</p><!--<![endif]-->

            ja, das funktioniert tatsächlich. Aber zeig das mal dem Validator. Der wird dir sagen, dass mit dem "--" vor "<![endif]--> der HTML-Kommentar zu Ende ist,

            Wieso? Der ist doch bereits vor dem <p> zu Ende.

            cu,
            Andreas

            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

            -- Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
          2. Hallo,

            So funktioniert es bei mir:
            <!--[if !IE]--><p>any standard-compliant browser</p><!--<![endif]-->

            ja, das funktioniert tatsächlich. Aber zeig das mal dem Validator. Der wird dir sagen, dass mit dem "--" vor "<![endif]--> der HTML-Kommentar zu Ende ist, und dass er mit dem folgenden unbekannten Tag "<![endif]-->" nichts anfangen kann.

            laut validator@w3c ist nachfolgender HTML-Code "This Page Is Valid XHTML 1.0 Strict!"

            <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en" xml:lang="en"> <head> <title>Test!</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <!--[if !IE]--><p>any standard-compliant browser</p><!--<![endif]--> </body> </html>

            mfg
            Twilo

        2. Hello out there!

          So funktioniert es bei mir:
          <!--[if !IE]><p>only MSIE</p><![endif]-->

                     ^
          Glaub ich nicht. ;-)

          <!--[if !IE]--><p>any standard-compliant browser</p><!--<![endif]-->

          Das ist ja das, was ich schon probiert hatte (im OP nur das '!' falsch gesetzt). Das funktioniert nicht im IE 5.0.

          See ya up the road,
          Gunnar

          -- “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          1. Hi!

            So funktioniert es bei mir:
            <!--[if !IE]><p>only MSIE</p><![endif]-->

                       ^
            Glaub ich nicht. ;-)

            ups, wenn du's so siehst. Ich glaubs auch nicht ;-)

            <!--[if !IE]--><p>any standard-compliant browser</p><!--<![endif]-->

            Das ist ja das, was ich schon probiert hatte (im OP nur das '!' falsch gesetzt). Das funktioniert nicht im IE 5.0.

            <!--<![endif]-->
                ^ du hattest es ohne ohne "<!" gepostet. Ab IE 5.5 funktioniert das nämlich so (bin mir sicher, dass ich das getestet habe). Ich dachte bisher immer im IE 5.0 würde das auch gehen. Scheinbar liege ich da falsch, oder geht es doch mit besagtem "<!"?

            1. Hello out there!

              <!--<![endif]-->
                  ^ du hattest es ohne ohne "<!" gepostet.

              „ups, wenn du's so siehst.“ ;-)

              Der Unterschied war mir inzwischen auch schon aufgefallen. Hab deins auch getestet: Nichts von alledem funktioniert im IE 5.0; lediglich die invalide Variante ohne Auskommentierung.

              See ya up the road,
              Gunnar

              -- “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
              1. Hi!

                Hab deins auch getestet: Nichts von alledem funktioniert im IE 5.0; lediglich die invalide Variante ohne Auskommentierung.

                Hier noch eine Ergänzung:
                <!--[if !IE]>--><p>any standard-compliant browser</p><!--<![endif]-->
                            ^ dieses ">" hatte ich in meinem Beispielcode vergessen und in deinem Code stand dies auch nicht. Führt das vielleicht auch im IE 5.0 zum Erfolg?

                1. Hello out there!

                  <!--[if !IE]>--><p>any standard-compliant browser</p><!--<![endif]-->
                  Führt das vielleicht auch im IE 5.0 zum Erfolg?

                  Ja!!!11einself

                  Wenn ich mich auf 5.0er Niveau herablasse, verstehe ich jetzt sogar, warum. ;-)

                  See ya up the road,
                  Gunnar

                  -- “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
      2. Hallo Gunnar,

        http://msdn.microsoft.com/workshop/author/dhtml/overview/ccomment_ovw.asp

        Auf diese Seite hatte mich Google auch geführt. Ich hätte sie nur richtig lesen sollen.

        Allerdings. Deine Ausführungen lassen mich vermuten, dass du die Seite immer noch nicht richtig[tm] gelesen hast.

        Das als Kommentar zu schreiben, war falsch.

        Nö. Unter der Überschrift "Downlevel-hidden Conditional Comments" wird gezeigt, wie man es regelkonform als HTML-Kommentar einbindet, an dem weder der Validator, noch andere Browser etwas auszusetzen haben, weil der komplette Block in einem Kommentar steht:

        <!--[if IE]> <p>Sie benutzen einen Internet Explorer.</p> <![endif]-->

        Logischerweise ist es _auf diese Weise_ nicht möglich, Extra-Code für Nicht-IEs einzublenden, weil ja alles im Kommentar steht. Aber da unbekannte Tags ja ignoriert werden sollen, dürften andere Browser sich auch an den "Downlevel-revealed Conditional Comments" nicht stören; es bleibt also nur ein formaler Fehler, der IMHO zu verschmerzen ist.

        PS: “This feature requires Microsoft® Internet Explorer 5 or later. Click the following icon to install the latest version. Then reload this page to view the sample.”
        Netter Versuch. ;-)

        Diese nette Aufforderung sehe ich auch, und das _obwohl_ ich die Seite mit einem IE besuche! :-)

        Schönes Wochenende noch,
         Martin

        --
        Ein guter Lehrer muss seinen Schülern beibringen können,
        eine Frage so zu stellen, dass auch der Lehrer lernen muss,
        um die Frage beantworten zu können.
          (Hesiod, griech. Philosoph, um 700 v.Chr.)

        1. Hello out there!

          Allerdings. Deine Ausführungen lassen mich vermuten, dass du die Seite immer noch nicht richtig[tm] gelesen hast.

          Hm, deine Ausführungen lassen mich vermuten, dass du meine Ausführungen nicht richtig[tm] gelesen hast. SCNR.

          wie man es regelkonform als HTML-Kommentar einbindet, an dem weder der Validator, noch andere Browser etwas auszusetzen haben, weil der komplette Block in einem Kommentar steht:

          Dass so’n conditional comment nicht nur Kommentar heißt, sondern auch einer IST, ist mir schon klar.

          Aber da unbekannte Tags ja ignoriert werden sollen, dürften andere Browser sich auch an den "Downlevel-revealed Conditional Comments" nicht stören; es bleibt also nur ein formaler Fehler, der IMHO zu verschmerzen ist.

          Du meinst <![if !IE]> wäre völlig OK, Scheiß auf Validität?

          See ya up the road,
          Gunnar

          -- “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          1. Hallo,

            Dass so’n conditional comment nicht nur Kommentar heißt, sondern auch einer IST, ist mir schon klar.

            *g*

            Aber da unbekannte Tags ja ignoriert werden sollen, dürften andere Browser sich auch an den "Downlevel-revealed Conditional Comments" nicht stören; es bleibt also nur ein formaler Fehler, der IMHO zu verschmerzen ist.

            Du meinst <![if !IE]> wäre völlig OK, Scheiß auf Validität?

            Naja, so drastisch hätte ich es jetzt nicht formuliert. Ich finde es natürlich richtig und erstrebenswert, validen Code zu schreiben.
            Aber es gibt halt ab und zu Fälle, in denen ich eine valide Lösung nicht hinbekomme. Wenn es dann aber eine nicht-valide gibt, die das leistet, was ich will, und nach reiflicher Überlegung zumindest keine schädlichen Nebenwirkungen haben dürfte, dann lass ich schon mal fünfe gerade sein. Da halte ich es dann so ähnlich wie mit den Warnungen des Validators bzgl. fehlender und damit evtl. problematischer Farben: Danke für den Hinweis, ich hab drüber nachgedacht und sehe kein wirkliches Problem in dieser Regelverletzung.

            Schönes Wochenende noch,
             Martin

            --
            Das Gehirn ist schon eine tolle Sache: Es fängt ganz von allein an zu arbeiten, wenn man morgens aufsteht, und hört erst damit auf, wenn man in der Schule ankommt.
              (alte Schülererkenntnis)

        2. Hallo ,

          Diese nette Aufforderung sehe ich auch, und das _obwohl_ ich die Seite mit einem IE besuche! :-)

          <scnr>
          *grins* vielleicht geht's in Deinem Fall um ein update ;D

          Schönes Wochenende noch,
          Martin

          </scnr>

          auch so
          Ulrich

          1. Hallo Ulrich,

            Diese nette Aufforderung sehe ich auch, und das _obwohl_ ich die Seite mit einem IE besuche! :-)

            <scnr>
            *grins* vielleicht geht's in Deinem Fall um ein update ;D
            </scnr>

            das mag schon sein, aber ich will nicht gemein sein: Das einzige, was der Server von meinem IE mitkriegt, ist die Identifikation (User Agent)
             Mozilla/4.0 (compatible; Generic Browser; Win32)
            Mit diesem UA melden sich alle meine Browser, weil ich der Ansicht bin, es geht den Server einen feuchten Kehricht an, welchen Browser ich _wirklich_ verwende.

            Ciao,
             Martin

            --
            F: Was ist schneller: Das Licht oder der Schall?
            A: Offensichtlich der Schall. Wenn man den Fernseher einschaltet, kommt immer erst der Ton, und dann erst das Bild.

            1.  Hallo,

              das mag schon sein, aber ich will nicht gemein sein: Das einzige, was der Server von meinem IE mitkriegt, ist die Identifikation (User Agent)
              Mozilla/4.0 (compatible; Generic Browser; Win32)
              Mit diesem UA melden sich alle meine Browser, weil ich der Ansicht bin, es geht den Server einen feuchten Kehricht an, welchen Browser ich _wirklich_ verwende.

              Ja ok, das ist einzusehen. Doch dann kannst Du es niemandem vorwerfen, daß Dein IE nicht als solcher erkannt wird und Du somit entsprechende Einladungen für downloads bekommst, oder?
              Wobei sich mir die Frage aufdrängt, wie Deine Antwort ausgefallen wäre, wenn Du hättest gemein sein wollen :D

              mfG
              Ulrich

            2. Hallo Martin.

              Mozilla/4.0 (compatible; Generic Browser; Win32)
              Mit diesem UA melden sich alle meine Browser, weil ich der Ansicht bin, es geht den Server einen feuchten Kehricht an, welchen Browser ich _wirklich_ verwende.

              Ich sehe das genau andersherum. Ich _will_, dass Server und damit die Seitenautoren sehen, welchen Browser ich verwende. Täte ich dies nicht, könnte ich nicht zum Verbreitungsgrad meines Browsers beitragen.

              Einen schönen Samstag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              <mathbr:del.icio.us/> <mathbr:w00t/>

              1. Hallo Ashura,

                Ich sehe das genau andersherum. Ich _will_, dass Server und damit die Seitenautoren sehen, welchen Browser ich verwende.

                ach was. Stellst du dich auch im Supermarkt hin und rufst in den Raum, welches Waschpulver du verwendest? Und betonst du jedesmal, wenn du Batterien kaufst, dass du sie für einen mp3-Player der Marke Hüllebö verwenden wirst? Oder sagst du dem verkäufer im Baumarkt auch, dass du nachher, wenn du die Spanplatten verarbeitest, eine Bohrmaschine von Deck und Bläcker benutzt?
                Nö, das geht doch niemanden etwas an.

                Täte ich dies nicht, könnte ich nicht zum Verbreitungsgrad meines Browsers beitragen.

                Was hat der Verbreitungsgrad eines Browsers damit zu tun, ob du seine Verwendung in die Welt hinausposaunst oder nicht?

                Schönen Abend noch,
                 Martin

                --
                Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
                Heißes Wasser kann man immer gebrauchen.

                1. Hallo Martin.

                  Ich sehe das genau andersherum. Ich _will_, dass Server und damit die Seitenautoren sehen, welchen Browser ich verwende.

                  ach was. […]

                  Ich mag keine hanebüchenen Vergleiche. (OK, ich mag so gut wie gar keine Vergleiche.)

                  Nö, das geht doch niemanden etwas an.

                  Wenn ich etwas mitteilen möchte, tue ich dies auch. Ob jemand zuhört oder nicht, ist mir ziemlich egal.

                  Was hat der Verbreitungsgrad eines Browsers damit zu tun, ob du seine Verwendung in die Welt hinausposaunst oder nicht?

                  Woran will man¹ den Verbreitungsgrad sonst erkennen?

                  Einen schönen Sonntag noch.

                  Gruß, Ashura

                  ¹ der Webautor, peinlich genau auf die Auswertung seiner Site-Statistik achtend

                  --
                  sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                  <mathbr:del.icio.us/> <mathbr:w00t/>

                  1. Hallo,

                    Wenn ich etwas mitteilen möchte, tue ich dies auch. Ob jemand zuhört oder nicht, ist mir ziemlich egal.

                    Okay, das ist dein gutes Recht.
                    Ich engagiere mich jedenfalls sehr für den Datenschutz und den Schutz der Privatsphäre.

                    Woran will man¹ den Verbreitungsgrad sonst erkennen?

                    Man¹ will das vielleicht. Aber es geht niemanden was an.

                    Gute Nacht auch,
                     Martin

                    ¹ der Webautor, peinlich genau auf die Auswertung seiner Site-Statistik achtend

                    -- Solange der Nagellack nicht trocken ist,
                    ist eine Frau praktisch wehrlos.
                      (Burt Reynolds, US-Schauspieler)
                    1. Hallo Martin.

                      Ich engagiere mich jedenfalls sehr für den Datenschutz und den Schutz der Privatsphäre.

                      Was ich verstehen kann und worin ich mich teilweise auch engagiere.

                      Aber wenn ich *explizit* will, dass man meinen Browser erkennt, gibt es zumindest meinerseits dahingehend keine Probleme.

                      Woran will man¹ den Verbreitungsgrad sonst erkennen?

                      Man¹ will das vielleicht. Aber es geht niemanden was an.

                      Dann könnten wir im Grunde gleich den UA-String abschaffen. Einen anderen Zweck erfüllt er ja heutzutage kaum¹ noch.

                      Einen schönen Sonntag noch.

                      Gruß, Ashura

                      ¹ bis auf den Einsatz in schlecht geschriebenen Scripten

                      --
                      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                      <mathbr:del.icio.us/> <mathbr:w00t/>

                      1. gudn tach!

                        Woran will man¹ den Verbreitungsgrad sonst erkennen?

                        Man¹ will das vielleicht. Aber es geht niemanden was an.

                        Dann könnten wir im Grunde gleich den UA-String abschaffen. Einen anderen Zweck erfüllt er ja heutzutage kaum¹ noch.

                        [...]

                        ¹ bis auf den Einsatz in schlecht geschriebenen Scripten

                        oder scripts, die sonst den bug-versuchten netscape 4 zum absturz bringen wuerden.

                        <scnr>ach so: "Woran will man [setze fussnote ein] bis auf den Einsatz in schlecht geschriebenen Scripten den Verbreitungsgrad sonst erkennen?" hihi.</scnr>

                        prost
                        seth

                        <!--[if !eddi]>-->ps.<!--<![endif]--> es ist uebrigens gar nicht so leicht mit der suche nach einem (kurzen) begriff bei google genau einen hit zu erhalten.
                        eine suche nach Hüllebö ist so eine. dagegen liefert sogar eine suche nach høgørøk, was mir irgendwie spontan dazu wieder eingefallen ist, noch mehrere hunderts hits.

                2. Hallo.

                  Und betonst du jedesmal, wenn du Batterien kaufst, dass du sie für einen mp3-Player der Marke Hüllebö verwenden wirst?

                  Ausgerechnet bei dieser Marke hätte ich Skrupel.
                  MfG, at

                  1. Morgen,

                    Und betonst du jedesmal, wenn du Batterien kaufst, dass du sie für einen mp3-Player der Marke Hüllebö verwenden wirst?

                    Ausgerechnet bei dieser Marke hätte ich Skrupel.

                    nana, du hast doch wohl keine Vorurteile gegen die Skandinavier? Vor allem aus Schweden sind wir doch schließlich rubuste, solide Qualität gewöhnt: Wasa, Volvo, Ikea, ...

                    *scnr*
                     Martin

                    --
                    Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
                    Heißes Wasser kann man immer gebrauchen.

                    1. Hallo Martin.

                      Vor allem aus Schweden sind wir doch schließlich rubuste, solide Qualität gewöhnt: Wasa, Volvo, Ikea, ...

                      Eben, da kann einem nichts mehr passieren:

                        „Mensch, das is doch ein Volvo, der ist aus Panzerstahl.“

                        „Ich mach nicht!“

                        „Da sind sogar Airbags drin.“

                      Einen schönen Montag noch.

                      Gruß, Ashura

                      PS: Wer obiges nicht kennt: Pflichtfilm.

                      --
                      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                      <mathbr:del.icio.us/> <mathbr:w00t/>

                      1. Hallo Ashura,

                          „Mensch, das is doch ein Volvo, der ist aus Panzerstahl.“

                        das erinnert mich an einen Kalauer, der vor Jahren hier mal kursierte:

                        Schedische Autos sind aus Schwedenstahl.
                        Deutsche Autos sind aus Kruppstahl.
                        Polnische Autos sind aus Diebstahl.

                        PS: Wer obiges nicht kennt: Pflichtfilm.

                        Aha, daher. Den Film kenne ich nur dem Titel nach.

                        Schönen Tag noch,
                         Martin

                        --
                        Fettflecke werden wieder wie neu, wenn man sie regelmäßig mit etwas Butter einschmiert.