Javascript wird nicht ausgeführt



  • Damit folgender Code

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
    
    <head>
    <title>BMI mit JavaScript berechnen</title>
    </head>
    
    <body>
      <h3>BMI berechnen</h3>
      <script type="text/javascript" src="javascript.js"></script>
      <noscript><p>Javascript ist nicht aktiviert!</p></noscript>
    </body>
    </html>
    

    Dateiname: bmi.xhtml bzw. bmi.html

    Vom Browser Firefox als XHTML Code erkannt und interpretiert wird, muss man den Code mit der Dateiendung *.xhtml speichern.
    Bei *.html interpretiert Firefox den Code als normales HTML.

    Dem Konqueror ist es egal wie die Dateiendung heißt, der interpretiert das immer falsch als herkömmliches HTML. D.h. man kann in den XHTML Code einen Fehler einbauen, z.B. br Tag ohne schließenden Tag und Konqueror zeigt das immer noch an, Firefox tut das nur, wenn die Dateienendung auf *.html endet und bei *.xhtml meldet es, wie gewünscht und erwartet einen XHTML Fehler.

    Mit Firefox könnte ich also leben, das Problem ist jetzt nur, wenn der Code als XHTML interpretiert wird, also als *.xhtml gespeichert wurde, dann wird der folgende Javascript Code in Firefox nicht ausgeführt:

    var weight = 60, height = 1.68;
    bmi = weight / (height * height);
    document.write ("Ihr Gewicht von " + weight
      + " kg und Ihre Größe von " + height
      + " m ergeben einen Body Mass Index (BMI) von "
      + bmi);
    document.write ("<p>Ideal ist ein BMI zwischen 20 und 24.</p>");
    

    Dateiname: javascript.js

    Wird die Datei aber als *.html gespeichert und somit als normales HTML interpretiert, dann wird der JS Code ausgeführt.

    Woran liegt das Problem?

    Ich hätte gerne, dass der Browser, die Datei als XHTML Datei interpretiert und der JS Code dennoch funktioniert.
    Ersteres will ich zum leichten validieren, letzteres um mit JS zu spielen.

    Alle drei Dateien, bmi.xhtml, bmi.html und javascript.js befinden sich im gleichen Verzeichnis und der Name ist auch alles korrekt.
    Als Webserver wird Apache 2 auf Localhost ausgeführt und mit Firefox und Konqueror darauf zugegriffen.

    Der Quellcode ist ein Beispiel aus dem Buch Basiswissen Web-Programmierung von H. Balzert. Laut Buch wird die Datei als bmi1.html gespeichert, was aber zu dem Fehler führt, das Firefox wie schon gesagt, dann den HTML interpreter verwendet und der findet dann keine Fehler im XHTML Code, wenn der XHTML Code Fehler hat.



  • Sieht wohl so aus, als würde das Buch von Frau Balzert nichts taugen:

    http://www.w3.org/MarkUp/2004/xhtml-faq.html#docwrite



  • Besorg dir mal eine Lernquelle die nicht aus den 90ern stammt...



  • @OP schrieb:

    Besorg dir mal eine Lernquelle die nicht aus den 90ern stammt...

    Rechnen kann auch nicht jeder.

    http://www.amazon.de/Basiswissen-Web-Programmierung-2-Auflage-JavaScript/dp/3868340335/



  • Wenn du den Code aus dem Buch hast, dann schmeiss es weg.

    Verwende kein XHTML, dann loesen sich alle deine Probleme von selbst. Und kauf dir ein Buch ueber JavaScript, weil document.write verwendet man seit dem Krieg nicht mehr.



  • Shade Of Mine schrieb:

    Wenn du den Code aus dem Buch hast, dann schmeiss es weg.

    Leider ja, der Code ist aus dem Buch.

    Verwende kein XHTML, dann loesen sich alle deine Probleme von selbst. Und kauf dir ein Buch ueber JavaScript, weil document.write verwendet man seit dem Krieg nicht mehr.

    Okay, dann werde ich für JavaScript auf XHTML verzichten und auf ein anderes Buch zurückgreifen.



  • Maybe your computer is hacked! lol



  • Kenner der Ursache schrieb:

    Maybe your computer is hacked! lol

    Das wäre mir egal.


Anmelden zum Antworten