Jens Menke: Netscape bastelt sich seinen Absturz selber :(

Hi

was sagt ihr eigentlich zu folgender Eigenart von Netscape , im Source-Code der HTML-Seite steht folgendes:
<TD width="10%" class="THeader">Bild</TD>

wenn man sich den Source im Netscape anschaut , so er
nicht gleich abschmiert steht da dann auf mal das :

<TD width="10%" class="THeader">Bild<
/TD>

so.. das ist für ihn denn ein nicht sauber geschlossener
Tag .. und er verabschiedte sich meist auch gleich.

Was sagen die Verfechter des sauberen Source-Codes dazu ?
Der Code ist sauber.. nur Netscape bastelt sich da selbst
unsauberen raus..  :(

gruss
Jens

  1. Hallo Jens,

    <TD width="10%" class="THeader">Bild<
    /TD>

    dieses Verhalten entsteht genau dann, wenn im Header mit document.write js-Dateien geschrieben und dann geladen werden.

    Es hat mich mal ein ganzes Wochenende gekostet, dem auf die Spur zu kommen.

    Ursache: der Navigator macht bei externen js-Dateien einen Zeilenumbruch und zwar so:
    <script language="JavaScript" src="homepage.js" type="text/javascript">
                                       <--diese Leerzeile fügt der Navi ein
    </script>

    beim normalen Einbinden stellt dies kein Problem dar. Schreibt man aber die Datei aber mittels document.write fügt der Navi genau dann die Leerzeile ein, wenn die js-Datei geladen wurde. Da hängt soweit ich weiß mit den internen Verarbeitungsmodus zusammen. Erwischt der Navi eine ungünstige Stelle zerschlägt es das Layout.
    Das Problem: du kannst den Umbruchpunkt nicht genau bestimmen, da er abhängig von der Netzgeschwindigkeit und dem Clientrechner ist.

    Abhilfe:
    (1) eine js-Datei für alle Browser und auf document.write im Header verzichten
    (2) Quelltext weit auseinanderschreiben, daß vermindert die Trefferwahrscheinlichkeit
    (3) js-Datei für den Navi normal einbinden und für den ie über document.write. Bei gleichen Funktionsnamen sollte eigentlich die Navivariante überschrieben werden. Getestet habe ich das nicht, da ich Variante 1 bevorzuge.

    Viele Grüße

    Antje

    1. dieses Verhalten entsteht genau dann, wenn im Header mit document.write js-Dateien geschrieben und dann geladen werden.

      Hi .. also ein externes JavaScript wird bei mir nicht
      über document.write eingebunden aber es werden ein paar
      CSS Angaben via JS geschrieben , speziell eine Anweisung
      für den Body-Tag die je nach Auflösung ein anders
      Hintergrund-Bild einstellt.

      <head>
      <link rel=stylesheet type="text/css" href="../style/drizzt.css">

      <script language="JavaScript" src="../scripts/setcss.js"></script>
      <script language=JavaScript>
      SetCSS();
      </script>
      </head>

      Das kann ich ja leider nun nicht in den Body-Tag legen.

      Mit der Geschwindigkeit stimmt übrigens auch .. mir
      hatte heute wer gesagt das sich Netscape bei einer Seite
      verabschiedet , lokal war sie bei mir OK , aber auf dem
      Server hatte ich dann den Zeilenumbruch .

      Grummel , kann ich wohl nur die Seiten immer wieder
      online mit NC laden .. Quelltext anschauen.. und solange
      Leerzeichen einfügen bis es OK ist.

      Naja.. am meisten Ärgert mich an diesem Fehler eigentlich
      das es immer wieder Leute gibt die sagen wenn NC abschmiert
      sind die Leute nur zu blöd korrekten Code zu schreiben.

      Dieser Fall beweist in meinen Augen das es nicht immer
      so sein muss , oder gibts irgendwo ein offizielles Verbot
      document.write im Head zu benutzen ?

      naja.. trotzdem danke .. ich hatte diese Antwort ja auch
      schon mal , wollte das nur nochmal loswerden da das
      Posting damals ja nem Unfall zum Opfer gefallen ist und
      ich mich nun schon seit nem halben Jahr wunder warum
      NC sporadisch immer wieder absäuft ohne das ich da
      bisher nen logischen Grund für gefundne hab.

      gruss
      Jens

    2. Wow...da sieht man's mal wieder was für qualifizierte Leute sich hier seinen Fragen vornehmen...

      Antje Hoffmann hat im JavaScript-Wettbewerb der InternetWorld so ganz nebenbei den 2. Platz belegt, und auch ein kleines Sümmchen abgestaubt...
      Ihr JS war zwar vom Programmaufwand nicht die allergrößte technische Spielerei, aber von der Idee (und daurauf kommt's ja im Endeffekt an) her echt genial...
      Das JS macht auf Klick aus einer Screenversion eines Dokuments eine Druckversion, in der einfach nur noch die wichtigsten Teile des Dokuments angezeigt werden...simpel aber genial!!!

      Nebenbei ist diese Ausgabe der InternetWorld für jeden Stammleser hier zu empfehlen...
      unter "Falko surft" steht eine kleine Glosse über Communities, die mir etwas die Augen geöffnet hat...

      nix für ungut,
      Oli

      1. Wow...da sieht man's mal wieder was für qualifizierte Leute sich hier seinen Fragen vornehmen...

        »»

        Hi

        interessant ist allerdings auch das zu dem Thema sonst
        keiner was sagt , eigentlich hätte ich ja mal gern ein
        paar Reaktionen von den ganzen Netscape Verfchtern dazu
        gesehen die immer alle Abstürze darauf zurückschieben
        das die Leute zu blöd sind sauberen Code zu schreiben.

        naja.. egal .. was solls.

        gruss
        JEns

        1. Ahh... Glueckwunsch Antje!

          Aber nun zu Jens:

          Als Netscape Verfechter muss ich sagen, dass der Navi natuerlich Fehler hat. Jedes Programm hat Fehler. Der Navi schreibt halt mal eine Leerzeile falsch, der IE oeffnet Sicherheitsluecken im System... soviele, dass alle 2 Wochen eine gefunden wird :-)

          Aber zugegeben, ein Fancy Browser mit tollen Scripten (und einigen BO2K und Netbus im Hintergrund *g*) ist auch was feines! *zynisches Grinsen*
          Browser, die einen winzigen Bug haben und eine Leerzeile einfuegen, wenn sie ein JS geladen haben, sollte man hingegen verbieten! Das geht ja nun wirklich nicht, und stellt einen gravierenden Mangel dar...

          (Habt ihr diese "Leerzeile schreiben" Sache schon Netscape gemeldet?)

          Mit besten Netscape-Gruessen,

          Bio

          1. Browser, die einen winzigen Bug haben und eine Leerzeile einfuegen, wenn sie ein JS geladen haben, sollte man hingegen verbieten! Das geht ja nun wirklich nicht, und stellt einen gravierenden Mangel dar...

            Das ein Browser nur ne Leerzeile schreibt ist auch kein
            Problem , das Probblem entsteht nur dannn wenn der Browser
            wegen dieser Leerzeile die er selbst produziert dann
            auch noch gleich mit ner Schutzverletzung aussteigt.

            Die Netscape Fans sagen ja immer , man muss sauber
            programmieren .. und die Fehlertoleranz beim IE ist
            scheisse weil , so wenn man denn aber beim Netscape
            sauber programmieren muss sollte man auf der anderen
            Seite erwarten das er zumindest sauberen Code auch sauber
            interpretiert.

            Code schreiben , im Netscape im Source anschauen , da
            dann kopieren , in Homesite einfügen und dann nochmal
            validieren ??
            Ist doch echt lachhaft.

            (Habt ihr diese "Leerzeile schreiben" Sache schon Netscape gemeldet?)

            Haha.. guter Witz .. ich habs aber meiner Putzfrau
            gemeldet .. da erhoffe ich mir doch etwas mehr Erfolg
            von.. :)

            gruss
            Jens

            1. Hallo Jens!

              Haha.. guter Witz .. ich habs aber meiner Putzfrau
              gemeldet .. da erhoffe ich mir doch etwas mehr Erfolg
              von.. :)

              leistest Dir ne eigene Putze? Schick sie mal rüber, hier gibt es auch genug zu tun, seitdem der Patrick nur noch vorm PC sitzt!

              Bis danndann
              Cyberwuff

              1. Hey... in Anbetracht der Lage, dass eventuell Raumpflegerinnen unter uns sind, die ihre eigene Homepage erstellen wollen und deshalb die beste HTML Hilfe der Welt in Anspruch nehmen wollen, moeglicherweise in Folge der CD in der Computerbild... da denke ich doch, dass wir alle nicht mehr 'Putze' zu Leuten sagen wollen, die unseren eigenen Dreck wieder wegmachen.

                Bio

      2. Hi Antje!

        Habs ja schon seit November gewußt das du dort was reißen wirst <g/> - aber nur den 2.? <wunder/> bin jetzt wirklich enttäuscht ;-) - ist ja der 1. platz von den verlieren <fg/>

        Nein gratuliere ganz herzlich - aber eins würde mich jetzt schon interessieren - was hatte der erste was du nicht hattest? Hätte jemand vielleicht eine link zu den anderen scripts?

        Also am 18.2. wird das ganze mit einem Gläschen Sekt gefeiert - was hälst du davon wenn du einen Sprung nach Wien kommst ;-) - Achja zum feiern bräuchten wir noch mehr als zwei ... wer kommt denn noch <g/>

        CU Roman

        P.S.: Wenn die nächstes Jahr von der 16KB begrenzung runtergehen, weiß ich was das SBC einreichen wird ;-)

        1. Hi Roman!

          Nein gratuliere ganz herzlich - aber eins würde mich jetzt schon interessieren - was hatte der erste was du nicht hattest? Hätte jemand vielleicht eine link zu den anderen scripts?

          http://www.internet-world.de/iw/magazin_listings_0200.htm
          dort gibt's die ersten drei Plätze als .zip-files zum Download

          der erste Platz war ein online-shop, der komplett in JS gemacht wurde...

      3. InternetWorld so ganz nebenbei den 2. Platz belegt, und auch ein kleines Sümmchen abgestaubt...
        Ihr JS war zwar vom Programmaufwand nicht die allergrößte technische Spielerei, aber von der Idee (und daurauf kommt's ja im Endeffekt an) her echt genial...
        Das JS macht auf Klick aus einer Screenversion eines Dokuments eine Druckversion, in der einfach nur noch die wichtigsten Teile des Dokuments angezeigt werden...simpel aber genial!!!

        Danke Oliver,

        ich habe es von dir erfahren, als ich während der Arbeit ein Blick ins Forum warf. Meine Schüler waren vom Freudenschrei ganz überrascht.

        Und jetzt ist auch endlich der Sekt kalt genug, denn das ist ein Grund zum Feiern.

        Roman, in Wien natürlich das Ganze nochmal. :-)

        Viele liebe Grüße

        die sich freuende Antje

  2. Hallo Jens!

    <TD width="10%" class="THeader">Bild</TD>

    Sollte das Problem nicht daran liegen was Antje beschrieben hat, würde es interessant sein zu wissen was du für class="THeader" definiert hast. Es gib einige Sachen gerade bei Tabellen + CSS die NS schneller abschmieren lassen als man "oops" sagen kann.
    Zugegeben; man muss sich schon etwas "ansträngen" gerade die Angaben zu erwsichen, aber so unmöglich ist das nun auch wieder nicht.

    Grüße
    Thomas

    1. Sollte das Problem nicht daran liegen was Antje beschrieben hat, würde es interessant sein zu wissen was du für class="THeader" definiert hast. Es gib einige Sachen gerade bei Tabellen + CSS die NS schneller abschmieren lassen als man "oops" sagen kann.
      Zugegeben; man muss sich schon etwas "ansträngen" gerade die Angaben zu erwsichen, aber so unmöglich ist das nun auch wieder nicht.

      Hi

      ich denke schon das es wenn eher so ist wie Anke es beschrieben
      hat , da ich das Verhalten inzwischen auf zwei Seiten
      beobachten konnte , und es jedesmal an anderen Stellen
      auftauchte , und hier war es halt sogar so das die Seite
      offlien auf dem lokalen Web-Server vollkommen OK war ,
      aber online beim Provider trat dan das besagte Problem
      auf.
      Die ganzen anderen Merkwürdigkeiten mit NC kenne ich
      inzwischen auch zur Genüge und jede Seite läuft immer
      durch nen Validator , und das ist ja der Witz , die
      Orginal Seite geht durch den Validator , nur der Source
      den Netscape daraus bastelt nicht mehr.

      Achja ansonsten :
      .THeader{color: #FFFFFF;font-family:Arial Black, Arial, sans;font-size:20px;text-align:top;}

      gruss
      Jens

      1. .THeader{color: #FFFFFF;font-family:Arial Black, Arial, sans;font-size:20px;text-align:top;}

        Hi Jens,

        ich weiß nicht, ob es der Grund dafür ist, aber vielleicht bringt es etwas, wenn Du die Leerzeichen anders setzen würdest. Das Ganze würde dann so aussehen:

        .THeader { color:#FFFFFF; font-family:Arial Black, Arial, sans; font-size:20px; text-align:top; }

        ah, jetzt beim Tippen ist mir aufgefallen:

        text-align:top; ??
        Gibt's das überhaupt? Wenn nein, sollte das nicht vertical-align:top; heißen?

        <../../tdcc.htm#a9>

        Vielleicht liegt's daran?

        Gruß
        Tom

        1. Gibt's das überhaupt? Wenn nein, sollte das nicht vertical-align:top; heißen?

          Hi

          stimmt .. es müsste sogar : vertical-align:text-top;
          heissen.
          Daran kanns aber nicht liegen.. da ich die Abstürze
          auch früher schon hatte wo dieser etwas falsche Tag
          nicht drin war.
          Nachdem ich den Head-Bereich aus ner anderen Seite ,der
          zumindest ohne das ich ihn mir in Hex angeschaut hab absolut identisch war , in die betreffende Seite
          kopiert hab war der Fehler auch wieder raus.
          War vermutlich irgendwo ein Leerzeichen weniger drin
          oder so.. lol

          gruss
          Jens