kostenloser Webspace werbefrei: lima-city


Javascript Valide

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.

    Hallo,
    ich hab meine Seite mal bei W3C validieren lassen und bekomme beim Javascript einen tag/fehler">Fehler.
    Der Fehler bezieht sich auf die For-Schleife, da hab ich ein dekrement (i--), und das beachtet er, obwohl Javascript in einem Kommentar ist.
    Außerdem gibt es ein Warning: Ich habe ein Kommentar geöffnet.

    Mach ich das Kommentar weg, dann passt alles und meine (Start-)Seite ist valide. :cool:

    Was kann da Schuld sein??
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. b****r

    nachdem ich keinen code sehe vermute ich mach die einfachste antwort:

    du hast ein kommentar geöffnet und irgendwo nicht geschlossen

    wenn du uns mit ein bischen code verwöhnen willst gibts vielleicht bessere antworten, aber meistens is die einfachste auch die richtige :)
  4. e********l

    Ich würd das Javascript einfach mal auslagern in eine eigene Datei, denn das nichts im HTML zu suchen.
  5. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.

    Also ein HTML-Kommentar mach ich im Javascript keines mehr.
    Nur JavaScript-Kommentare (//).

    Hier ein bisschen Code:

    <script type="text/javascript">
    function change_style(value) {
    var i=3;
    var hilf;
    for(i=3; i>=0; i--) {
    hilf = "style" + i;
    if(value==hilf) {
    value=i;
    i=0
    }
    // else
    // value="";
    }
    window.location.href = "<?php echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']."?p=".$_GET['p']."style=";?>" + value;

    }
    </script>

    So gibt es kein Error, wenn ich aber Kommentare setze ...


    <script type="text/javascript">
    <!--
    function change_style(value) {
    var i=3;
    ...

    }
    //-->
    </script>

    ... schon.


    Beitrag geändert: 26.11.2007 15:40:28 von philippkern
  6. Das Problem mit JavaScript innerhalb von HTML sind die Tag-Klammern, die in JS eine andere Bedeutung haben.

    Deswegen musst du deinen JavaScript Bereich explizit als Plaintext deklarieren, damit ein XML Parser dort keine weiteren Tags sucht und alles wie normalen Text behandelt.

    Die Kennzeichnung von JavaScript sollte daher so aussehen:
    <script type="text/javascript">/* <![CDATA[ */

    /* ]]> */</script>
  7. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.


    Das Problem mit JavaScript innerhalb von HTML sind die Tag-Klammern, die in JS eine andere Bedeutung haben.

    Deswegen musst du deinen JavaScript Bereich explizit als Plaintext deklarieren, damit ein XML Parser dort keine weiteren Tags sucht und alles wie normalen Text behandelt.

    Die Kennzeichnung von JavaScript sollte daher so aussehen:
    <script type="text/javascript">/* <![CDATA[ */

    /* ]]> */</script>


    So gehts, aber da ist jetzt kein Html-Kommentar drinnen.
    Versuchen die &auml;lteren Browser das dann nicht "darzustellen"?.

    Stimmt es eh das ich die JS-Funktion im Body-Teil definiere?
  8. e********l

    &#196;ltere Browser ignorieren das auch, weil sie es nicht interpretieren k&#246;nnen.

    JS geh&#246;rt in den Head und dann in eine externe Datei. In der HTML Datei JS zu haben ist pfui!
  9. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.


    &#196;ltere Browser ignorieren das auch, weil sie es nicht interpretieren k&#246;nnen.

    JS geh&#246;rt in den Head und dann in eine externe Datei. In der HTML Datei JS zu haben ist pfui!


    Bei SELFHTML steht das ein Browser den JS-Code einfach ausgibt, wenn er ihn nicht interpretieren kann.

    Und wenn ich es nicht in eine externe Datei haben will, dann ist es auch im Body m&ouml;glich, stimmts?
    Also das es funzt wei&szlig; ich, aber obs "depracted" (oder so) ist?

  10. So gehts, aber da ist jetzt kein Html-Kommentar drinnen.
    Versuchen die &auml;lteren Browser das dann nicht "darzustellen"?.

    "&#228;ltere Browser" gibt es nicht mehr. JavaScript wird in allen g&#228;ngigen Browsern als solches erkannt und je nach den F&#228;higkeiten des Browsers ausgef&#252;hrt oder nicht.
    Die Zeiten, wo du einen JavaScript Bereich mit HTML Kommentaren entsch&#228;rfen musst, sind definitiv vorbei.

    Unsere "Problemkinder" sind jetzt keine Browser, sondern XML Parser, die die < > Zeichen als Tags erkennen. Daher muss man ihnen sagen, dass sie diese Zeichen ignorieren sollen.

    http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style

    Stimmt es eh das ich die JS-Funktion im Body-Teil definiere?

    JavaScript Bereiche kannst du &#252;berall im Dokument haben.
    Die Einschr&#228;nkung mit der Einbindung im <head> gilt nur f&#252;r <style> und <link>. Diese beiden Tags haben aber auch nix mit JavaScript zu tun, sondern mit CSS.

    http://de.selfhtml.org/html/referenz/elemente.htm#style (siehe Elternelemente)
    http://de.selfhtml.org/html/referenz/elemente.htm#script (siehe Elternelemente)

    evil-devil schrieb:
    &#196;ltere Browser ignorieren das auch, weil sie es nicht interpretieren k&#246;nnen.

    Nein. Computerprogramme sind doof. Deswegen musst du extra daf&#252;r sorgen, dass sie nix zu futtern kriegen, was ihnen nicht bekommt. Denn sonst futtern sie es.

    Die Notation
    <script type="text/javascript">/* <![CDATA[ */

    /* ]]> */</script>
    Hat 2 Eigenschaften:
    Der /* */ JavaScript Kommentar sorgt daf&#252;r, dass die JavaScript-Engine nicht die CDATA-Notation als JavaScript interpretiert und die CDATA-Notation sorgt daf&#252;r, dass ein XML Parser den JavaScript Code als Plaintext parst.

    JS geh&#246;rt in den Head und dann in eine externe Datei. In der HTML Datei JS zu haben ist pfui!

    Totaler Bl&#246;dsinn.

    philippkern schrieb:
    Bei SELFHTML steht das ein Browser den JS-Code einfach ausgibt, wenn er ihn nicht interpretieren kann.

    Ja. Ganz alte Browser. Weil sie den <script> Tag f&#252;r einen ganz normalen Auszeichnungstag halten.

    Beitrag geändert: 26.11.2007 18:36:55 von bladehunter
  11. Autor dieses Themas

    philippkern

    Kostenloser Webspace von philippkern

    philippkern hat kostenlosen Webspace.



    So gehts, aber da ist jetzt kein Html-Kommentar drinnen.
    Versuchen die &auml;lteren Browser das dann nicht "darzustellen"?.

    "&#228;ltere Browser" gibt es nicht mehr. JavaScript wird in allen g&#228;ngigen Browsern als solches erkannt und je nach den F&#228;higkeiten des Browsers ausgef&#252;hrt oder nicht.
    Die Zeiten, wo du einen JavaScript Bereich mit HTML Kommentaren entsch&#228;rfen musst, sind definitiv vorbei.

    Unsere "Problemkinder" sind jetzt keine Browser, sondern XML Parser, die die < > Zeichen als Tags erkennen. Daher muss man ihnen sagen, dass sie diese Zeichen ignorieren sollen.

    http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style

    Stimmt es eh das ich die JS-Funktion im Body-Teil definiere?

    JavaScript Bereiche kannst du &#252;berall im Dokument haben.
    Die Einschr&#228;nkung mit der Einbindung im <head> gilt nur f&#252;r <style> und <link>. Diese beiden Tags haben aber auch nix mit JavaScript zu tun, sondern mit CSS.

    http://de.selfhtml.org/html/referenz/elemente.htm#style (siehe Elternelemente)
    http://de.selfhtml.org/html/referenz/elemente.htm#script (siehe Elternelemente)

    evil-devil schrieb:
    &#196;ltere Browser ignorieren das auch, weil sie es nicht interpretieren k&#246;nnen.

    Nein. Computerprogramme sind doof. Deswegen musst du extra daf&#252;r sorgen, dass sie nix zu futtern kriegen, was ihnen nicht bekommt. Denn sonst futtern sie es.

    Die Notation
    <script type="text/javascript">/* <![CDATA[ */

    /* ]]> */</script>
    Hat 2 Eigenschaften:
    Der /* */ JavaScript Kommentar sorgt daf&#252;r, dass die JavaScript-Engine nicht die CDATA-Notation als JavaScript interpretiert und die CDATA-Notation sorgt daf&#252;r, dass ein XML Parser den JavaScript Code als Plaintext parst.

    JS geh&#246;rt in den Head und dann in eine externe Datei. In der HTML Datei JS zu haben ist pfui!

    Totaler Bl&#246;dsinn.

    philippkern schrieb:
    Bei SELFHTML steht das ein Browser den JS-Code einfach ausgibt, wenn er ihn nicht interpretieren kann.

    Ja. Ganz alte Browser. Weil sie den <script> Tag f&#252;r einen ganz normalen Auszeichnungstag halten.

    Beitrag ge&auml;ndert: 26.11.2007 18:36:55 von bladehunter


    Jetzt bin ich um einiges kl&uuml;ger :)
  12. e********l


    evil-devil schrieb:
    &#196;ltere Browser ignorieren das auch, weil sie es nicht interpretieren k&#246;nnen.

    Nein. Computerprogramme sind doof. Deswegen musst du extra daf&#252;r sorgen, dass sie nix zu futtern kriegen, was ihnen nicht bekommt. Denn sonst futtern sie es.

    Die Notation
    <script type="text/javascript">/* <![CDATA[ */

    /* ]]> */</script>
    Hat 2 Eigenschaften:
    Der /* */ JavaScript Kommentar sorgt daf&#252;r, dass die JavaScript-Engine nicht die CDATA-Notation als JavaScript interpretiert und die CDATA-Notation sorgt daf&#252;r, dass ein XML Parser den JavaScript Code als Plaintext parst.

    Ich hab nichts gegen das <![CDATA[ geschrieben, hin und wieder nutz ich das auch, nur in den meisten F&#228;llen ist der JS ANteil so hoch das er auf keinen Fall in die HTML Datei direkt rein sollte.


    JS geh&#246;rt in den Head und dann in eine externe Datei. In der HTML Datei JS zu haben ist pfui!

    Totaler Bl&#246;dsinn.

    Von Codeorganisierung noch nichts geh&#246;rt? Nicht jeder erzeugt sein Javascript &#252;ber PHP, oft reicht statisches JS und dann ~1k Zeilen in jedes Dokument zu pasten w&#228;re horror. ZUmal bei den meisten Projekten nicht auf jeder Seite jede JS Funktion ben&#246;tigt wird. Unn&#246;tiger Overhead f&#252;r den Browser, drum nur schicken was auch geschickt werden muss.


  13. Ich hab nichts gegen das <![CDATA[ geschrieben, hin und wieder nutz ich das auch,

    Dann habe ich dich falsch verstanden.

    nur in den meisten F&#228;llen ist der JS ANteil so hoch das er auf keinen Fall in die HTML Datei direkt rein sollte.

    Kommt drauf an. Wenn dieser Code nur in genau dieser Datei verwendet wird, ist es kl&#252;ger ihn nicht auszulagern, weil das einen zus&#228;tzlichen HTTP-Request bedeuten w&#252;rde.
    Wenn ein Code von mehreren Dateien eingebunden wird, dann ist die Auslagerung definitiv der richtige Weg. Insbesondere deshalb, weil man nur 1 Datei ver&#228;ndern muss und weil eine bereits runtergeladene JS-Datei im Cache liegt.

    Und falls dir dein JS zu aufgebl&#228;ht vorkommt, musst du gegebenfalls schauen, ob du es optimieren kannst.


    JS geh&#246;rt in den Head und dann in eine externe Datei. In der HTML Datei JS zu haben ist pfui!

    Totaler Bl&#246;dsinn.

    Von Codeorganisierung noch nichts geh&#246;rt?

    Diese Codeorganisation sollte aber auch sinnvoll sein.
    Au&#223;erdem gibt es gen&#252;gend F&#228;lle, wo ein Script Bereich innerhalb des <body> sinnvoll ist: z.B. wenn per DOM auf HTML Elemente zugegriffen werden soll, die logischerweise erst im <body> definiert sind.

    Nicht jeder erzeugt sein Javascript &#252;ber PHP, oft reicht statisches JS

    Richtig. Du kannst aber auch per PHP ausgelagerte JS Dateien dynamisch generieren.
    Ich verstehe blo&#223; dein Argument nicht. Wenn du einen dynamischen Wert vom Server brauchst, dann kommt man an PHP schlie&#223;lich nicht herum. JavaScript hat eben seine Grenzen.

    und dann ~1k Zeilen in jedes Dokument zu pasten w&#228;re horror.

    Habe ich behauptet, dass ich nie auslagere?
    Und bei 1k Zeilen... von was f&#252;r Scripten sprichst du? :biggrin:

    ZUmal bei den meisten Projekten nicht auf jeder Seite jede JS Funktion ben&#246;tigt wird. Unn&#246;tiger Overhead f&#252;r den Browser, drum nur schicken was auch geschickt werden muss.

    Da muss man auch die goldene Mitte finden. Lieber ein paar mehr unn&#246;tige Funktionen geb&#252;ndelt in eine JS Datei und daf&#252;r weniger HTTP Anfragen + Cache Vorteil, als dass man jedes mal zig externe Dateien runterladen muss.


    Beitrag ge&#228;ndert: 27.11.2007 9:52:41 von bladehunter


    Beitrag geändert: 27.11.2007 9:53:28 von bladehunter
  14. e********l

    @1k Scripten: Projekte die total auf der Web 2.0 AJAX Schiene laufen. Das ein oder andere k&#246;nnte man bestimmt noch optimieren, aber solange es l&#228;uft ist es erstmal ok. Soviel Zeit gibt einem Chef auch nicht ;)

    @DOM/BODY: Naja, in dem Fall ruf ich die jeweilige JS Funktion erst am Ende der Seite auf sofern sie automatisch aufgerufen werden soll. Alles andere kann man mit Try/Catch abfangen.

    @kurze Script in HTML: Spricht nichts dagegen, nur hab ich solch kurze Scripte fast nie :/
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!