CirTap: sucks=((NN4 + «img name="bla"») != HTML4)

...
sucks_even_more=((NN4 + <img id="bla">) == object-not-found)

Moin Gemeinde,
also ich hasse ja JavaScript, weil ich im Grunde keinen wirklich "sinnvollen" Nutzen darin sehen kann, aber was solls.
Ich hab mich (dank Unterstützung von A. H.) irgendwann zu breitschlagen lassen *auch* Rollover-Images auf einer Seite einzusetzen und das Ergebnis: Non-valid HTML4!
Warum?
Weil der Validator auf W3C sagt, "name" ist kein gültiges Attribut für IMG... Na gut, nehm ich halt ID und prompt bricht der dumm-Netscape 4 wieder ins Essen: er "kennt" das besagte Image-Objekt nicht!
Die images sind (jetzt) so gecoded (#=Nummer):
<img name="nav_#" src=".." ...>
und waren beim Test
<img id="nav_#" src=".." ...> latürnich ohne name-Attribut.
Im onMouseOver/-Out wird die rollover routine aufgerufen, die im images[name] die src-eigenschaft ändert, ein Image mit "id" (ohne Name) hält dumm-NN aber für nicht-existent, IE4+ und Opera sind da zugänglicher.
Fehler im Script schließe ich aus, da er von einer sehr qualifizierten JS-Programmiererin erstellt wurde :)) <wink> <verneig>

Nicht, daß ich jetzt darauf bestehe, daß Rollovers "auch" im NN erscheinen, wichtig ist mir eher, daß die Datei HTML4-konform ist - im Zweifelsfalle setz ich ein "if (document.layers) bye_netscape;" in die besagte Funktion ein und laß den dumm-NN damit aussen vor.

Hoffentlich sind die bei Mozilla bald fertig mit dem 5er!!

Danke im Vorab für Hilfe, Tips, Anregungen und Mitleid

CirTap

  1. Hi,

    HTML 4.01 hat soweit ich weiß <img name> vorgesehen. Wenn Dir das nicht reicht, erstelle Dein eigenes DTD.

    sucks_even_more=((NN4 + <img id="bla">) == object-not-found)

    sucks_most=(Kritik_NN4 == ewige_Meckerei)

    Wir alle wissen, daß Netscape 4 ziemlich viel nicht kann und ziemlich viel eigenes macht. Vergiß aber nicht, daß Netscape 4 äußerst früh rausgekommen ist. Spar Dir die Meckerei und erstelle _funktionierende_ Seiten rather than de-facto-NON-Standard-konforme (derzeit ist HTML 4 definitiv _nicht_ Praxis-Standard, was sich mit Netscape 5 ändern wird).

    Cheatah

    1. Moin Cheatah,

      danke für die konstruktiven Bemerkungen ;-)
      Du bist nicht zufällig Netscape-Fan? Offensichtlich aber von HTML 3.

      Für konstuktivere Leser: der Link zum genannten Thread im Archiv lautet übrigenz <../../sfarchiv/1999_1/t01931.htm>

      Vergiß aber nicht, daß Netscape 4 äußerst früh rausgekommen ist. Spar Dir die Meckerei und erstelle _funktionierende_ Seiten rather than de-facto-NON-Standard-konforme (derzeit ist HTML 4 definitiv _nicht_ Praxis-Standard, was sich mit Netscape 5 ändern wird).

      <lach> oh, Verzeihung,d a0 ich nicht in der Vergangenheit lebe... und daß ein 4.5 und später immer noch den gleichen Bockmist baut wie ein 2 Jahre älterer 4.0x ist dann ok und Praxisnah, richtig?
      Sinn und Existenz des 4.5+ ist mir sowieso nach wie vor ein Rätsel.
      Ich meckere nicht, sondern stelle nur fest (wie andere auch) und werde sicherlich nicht wegen diesem Browser (mit dem ich grad unterwegs bin) "falsche" Seiten produzieren.

      "Deinen Weg" zu gehen, und kein HTML 4 zu verwenden und sich statt dessen den Wolf zu "programmieren" oder wilde HTML3-Konstrukte zu basteln, nur weil zwei amerikanische Firmen ein Problem miteinander haben, ist sicherlich der Beste, dafür zu sorgen, daß sich dieser *Standard* (und andere) auch definitiv *nicht* durchsetzen und Praxis werden. Das setzen eines irrelevanten DOCTYPE für ein nie veröffentlichtes HTML 3 hilft da recht wenig und hat mit der Praxis auch nichts zu tun ;-)

      Interessant, daß "Du" HTML4 auch erst dann zum Standard erheben willst, wenn eine Gruppe engagierter, unbezahlter Entwickler endlich mal die Kurve kriegt und die Orgie an Milestones in ein Final portiert. Schaun' wir mal und ergötzen uns solange an Testberichten in Zeitschriften, die über eine unbestimmte Zukunft berichten.

      Und zu deiner ach so scharfsinnigen Bemerkung zum Thema eigenes DTD: es wäre sicher das Leichteste, dem IMG in einem lokalen (!) DTD das name Attribut für IMG hinzuzufügen, wenn es Programme gäbe, die sich dieses auch "ziehen" und es interpretieren würden, aber dann wären wir ja schon fast bei XML und/oder XHTML, die definitiv kein Praxis-Standard (auf Clientebene) sind.

      Sicher kann ich warten, bis der 5er Modzilla draußen ist und in 3 Jahren ist der dann auch vielleicht auch bei 40% der User installiert. Ich mußte dann ja nur 5 Jahre warten, um mit HTML4 und CSS1/2 *offiziell* arbeiten zu dürfen. Sehr hilfreich diese Aussicht .. *jetzt*, zumal HTML4 im April 98 verabschiedet wurde ;-)

      Wie gesagt: sollte sich da nichts HTML4-konformes in Kombination mit etwas JS zu meinem "Problem(chen)" finden, dann bleiben die (im Grunde unnötigen) Rollovers eben im NN weg.
      Könnte ja aber sein, daß die/der ein oder andere einen Weg oder ein allwissendes JS-Objekt kennt, an dem man sich gezielt herunterhangeln kann und das mir weiterhilft, denn es sind ja durchaus fähige Leute hier im Forum unterwegs.

      Nichts für ungut und danke für das Gespräch
      CirTap

      1. Hi,

        Du bist nicht zufällig Netscape-Fan?

        definiere "Fan". Was die Fähigkeiten im HTML-Bereich betrifft, sicher nicht.

        Offensichtlich aber von HTML 3.

        Quatsch, wie kommst Du darauf?

        Vergiß aber nicht, daß Netscape 4 äußerst früh rausgekommen ist. Spar Dir die Meckerei und erstelle _funktionierende_ Seiten rather than de-facto-NON-Standard-konforme (derzeit ist HTML 4 definitiv _nicht_ Praxis-Standard, was sich mit Netscape 5 ändern wird).

        <lach> oh, Verzeihung,d a0 ich nicht in der Vergangenheit lebe... und daß ein 4.5 und später immer noch den gleichen Bockmist baut wie ein 2 Jahre älterer 4.0x ist dann ok und Praxisnah, richtig?

        Häh? Was redest Du denn da für einen Unsinn? Das sollte lediglich erklären, _warum_ Netscape eine so schlechte HTML-4-Implementierung hat. Das wird sich übrigens innerhalb einer Generation (also innerhalb von 4.x) nicht ändern, auch nicht wenn Du Jahrzehnte wartest.

        "Deinen Weg" zu gehen, und kein HTML 4 zu verwenden und sich statt dessen den Wolf zu "programmieren" oder wilde HTML3-Konstrukte zu basteln,

        Wie kommst Du bloß auf sowas?! Ich habe mir ein HTML-4-ähnliches DTD erstellt, das dem jetzigen HTML-4.01-DTD sehr ähnlich sieht, und nutze dieses auch. Wie kommst Du nur auf "wilde HTML-3-Konstrukte"?!

        Interessant, daß "Du" HTML4 auch erst dann zum Standard erheben willst,

        HTML 4 _ist_ Standard, aber ausschließlich in der Theorie. Kein Browser (nicht mal Amaya) unterstützt diesen Standard vollständig; beinahe keiner ausreichend. Demnach ist es kein Praxis-Standard. So einfach ist das.

        Und zu deiner ach so scharfsinnigen Bemerkung zum Thema eigenes DTD: es wäre sicher das Leichteste, dem IMG in einem lokalen (!) DTD das name Attribut für IMG hinzuzufügen, wenn es Programme gäbe, die sich dieses auch "ziehen" und es interpretieren würden, aber dann wären wir ja schon fast bei XML und/oder XHTML, die definitiv kein Praxis-Standard (auf Clientebene) sind.

        Richtig: Kein Browser (außer Amaya) liest ein DTD. Das bedeutet, daß ein DTD und damit auch ein Standard absolut keine Bedeutung hat. Erstelle Deine Seiten also für das, was Bedeutung hat, nämlich die existierende Implementierung. Nutze HTML 4.01 dazu, oder wenn Dir das nicht reicht erstelle Dein eigenes DTD - für die Zukunft!

        Wie gesagt: sollte sich da nichts HTML4-konformes in Kombination mit etwas JS zu meinem "Problem(chen)" finden, dann bleiben die (im Grunde unnötigen) Rollovers eben im NN weg.

        Tolle Schlußfolgerung, die Theorie über die Realität zu stellen. Wenn Du nur ein hundertstel weitergehen würdest, nämlich zu HTML 4.01, könntest Du <img name> benutzen, ohne gegen irgendeinen Vorschlag(!) zu "verstoßen". Ja, HTML 4 ist ein Vorschlag.

        Cheatah

        1. Hallo Cheatah,

          Offensichtlich aber von HTML 3.
          Quatsch, wie kommst Du darauf?

          cheatah.net ? Angabe des Doctype ;-)

          Wie kommst Du bloß auf sowas?! Ich habe mir ein HTML-4-ähnliches DTD erstellt, das dem jetzigen HTML-4.01-DTD sehr ähnlich sieht, und nutze dieses auch. Wie kommst Du nur auf "wilde HTML-3-Konstrukte"?!

          Diese Konstrukte (table,div,layer-schachteleien, js-eingriffe) werden oft eingesetzt, um die bestehenden Unzulänglichkeiten der Browser, die - wie Du ja schreibst - HTML 4 *und* CSS1 nicht vollständig unterstützen (von CSS2/CSSP mal ganz zu schweigen), zu dem zu zwingen, was mit "nativem" HTML4 und CSS1 eigentlich machbar sein "sollte" - alles Theorie, sicher - aber wenn sich letztendlich keiner bereit erklärt bzw. den Schritt geht, die 70% von HTML und CSS zu verwenden, die von den 4er und 5er, "erkannt" werden wird aus der Theorie natürlich *nie* Praxis und die meinte ich: Praktischer Einsatz dessen, was geht.
          Bis heute unterstützen die Browser ja nicht einmal 100% HTML3.2; wird HTML4.0x/XHTML wohl auch nicht anders ergehen.

          Der "Tipp" mit HTML 4.01 war ja dann auch letztendlich nicht der Schlechteste, mir war leider nicht bewußt, daß es schon etwas weiter gediegen war, denn ich schaunicht täglich beim W3C vorbei.

          "Problem" gelöst <gg>

          In diesem Sinne
          CirTap

  2. kleiner Nachtrag:
    hier <img src="/selfhtml/x2.gif" alt=""><sfarchiv/1999_1/t01931.htm> wurde das Problem schon mal angesprochen, hat sich dann aber in Richtung Layers bewegt und ist in sofern nicht akzeptabel, da es weiterhin davon ausgeht, daß img ein "name" hat; lediglich das DIV drumrum hat danach eine ID und verkompliziert das Ganze nicht unerheblich - auch wenn die Lösung gut ist.

    ach so: und der Fhler wäre nicht "object_not_found" sondern wie im Artikel erwähnt "image has no properties" - auch nicht besser ;-)

    Gut' Nacht
    CirTap

    1. Nachdem ich mich grade leicht echauffiert habe, hier noch ein Nachschlag zum Code der besagten Seiten (für die etwas konstruktiveren Leser des Threads):

      Die besagten Images sind in folgendem Tabellenkonstrukt untergebracht:
      <body ... id="bodyid">
      <div align="center">
      <table ... id="tblNavTop"><tr>
      <td class="navtext" ... id="tdNavXX><img id="imgNavXX" src="datei_XX.gif"></td>
      ..
      </tr></table>
      </div>
      ...
      </body>

      XX sind zweistellige Text-Kürzel, z.B. "hp", "ev", "sp" etc. die sich wie angedeutet auch in den Namen der Images wiederfinden. Die nav-Tabelle ist also immer das zweite Objekt im "Document-Tree".

      Wie gesagt: <img name="bla"> ist unerwünscht, da (noch) non-html4

      Danke für Anregungen

      CirTap

      1. Hi,

        Wie gesagt: <img name="bla"> ist unerwünscht, da (noch) non-html4

        seit zwei Monaten ist HTML 4.01 vorhanden, angepaßt an die Implementierung, die seit JavaScript 1.0 Gültigkeit hat.

        Cheatah

  3. Hallo CT!

    Schön, daß es dich noch gibt! ;-)

    Non-valid HTML4!

    Warum?
    Weil der Validator auf W3C sagt, "name" ist kein gültiges Attribut für IMG...

    Ne!
    W3C sagt aber bald was gaaaaaanz anderes! ;-)))
    http://www.w3.org/TR/html40/appendix/changes.html#h-A.1.1.9

    Grüße
    Thomas