Cedrikus: externe javascript-Datei einbinden

Hallo,

habe folgendes Problem: ich möchte ein externes Javascriptdokument in mein html-dokument einbinden, jedoch funktioniert das irgenwie nicht richtig. Hier mein Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="de">
    <head>
        <meta http-equiv="content-type" content= "text/html; charset =ISO-8859-1">
        <title>Test</title>
        <title> Javascript einbetten</title>
         <script>
            function senden(){
                document.write("ahlloo");
            }
        </script>
        <script src="eh.js"></script> 
    </head>
    <body>
        <p><input id="idVorname" size="10"> Vorname</p>
        <p><input id="idSenden" type="button" value="senden"></p>
        <p>
              <script>meinHandler("idSenden","click", senden);</script>
        </p>
       
        
    </body>
</html>

Und hier die einzubindende Datei(eh.js):

function meinHandler(id, er, meth)
{
    if(window.addEventListener)
        document.getElementById(id).addEventListener(er, meth, false);
}

Es gibt jedoch keine Reaktion, wenn ich den Button drücke. Verschiebe ich nun aber das Einbinden innerhalb des body-p-blocks(siehe unterhalb) direkt vor das andere script funktioniert es plötzlich.

<body>
        ...
        <p>
              <script src="eh.js"></script>
              <script>meinHandler("idSenden","click", senden);</script>
        </p>
           
    </body>

Das verstehe ich irgenwie nicht so ganz.

Des Weiteren checke ich nicht, wieso die folgende javascript datei nicht ausgeführt wird:

...
<body>
...
      <p> <script src="mitte.js"></script> </p>       
</body>

mitte.js:

document.write("halliooo");

verzeiht mir bin noch blutiger Anfänger.

Vielen Dank.

  1. @@Cedrikus

    Es gibt jedoch keine Reaktion, wenn ich den Button drücke.

    Doch, es steht wie zu erwarten „ahlloo“ auf der (neuen) Seite.


    Zu deinem Code noch ein paar Anmerkungen:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    

    Nicht mehr verwenden! Es gibt nur ein HTML, und das ist HTML5. Verwende als Angabe <!DOCTYPE html>


            <meta http-equiv="content-type" content= "text/html; charset =ISO-8859-1">
    

    Verwende als Zeichencodierung UTF-8 – immer und überall!

    Statt per http-equiv kannst du die Zeichencodierung in HTML auch einfach so angeben: <meta charset="UTF-8">


                    document.write("ahlloo");
    

    Wenn du document.write() nach dem Laden der Seite ausführst, wird der bestehende Seiteninhalt gelöscht. Ist es das, was du willst?


            <p><input id="idVorname" size="10"> Vorname</p>
    

    Jedes Eingabefeld muss eine Beschriftung haben – und Beschriftung meint nicht, dass etwas lediglich visuell in der Nähe des Eingabefeldes steht, sondern ein label-Element.

    Entweder mit for-Attribut, welches sich auf die ID des Eingabefeldes bezieht:

            <p><input id="idVorname" size="10"> <label for="idVorname">Vorname</label></p>
    

    oder schachteln, dann geht’s auch ohne for-Attribut:

            <p><label><input id="idVorname" size="10"> Vorname</label></p>
    

    (Wobei die Beschriftung üblicherweise vor (über) dem Eingabefeld steht.


            <p><input id="idSenden" type="button" value="senden"></p>
    

    Für Buttons gibt es in HTML ein button-Element. Dieses sollte verwendet werden:

            <p><button id="idSenden" type="button">senden</button></p>
    

    Und was soll ohne JavaScript passieren?

    LLAP 🖖

    --
    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    1. Tach!

      Verwende als Zeichencodierung UTF-8 – immer und überall!

      Dazu sollte man noch erwähnen, dass "verwende" sich nicht nur darauf beschränkt, die Angabe umzustellen. Man muss die Dokumente auch tatsächlich in UTF-8 abspeichern.

      dedlfix.

      1. @@dedlfix

        Verwende als Zeichencodierung UTF-8 – immer und überall!

        Dazu sollte man noch erwähnen, dass "verwende" sich nicht nur darauf beschränkt, die Angabe umzustellen. Man muss die Dokumente auch tatsächlich in UTF-8 abspeichern.

        Natürlich. Deshalb hatte ich ja auch das Tutorial verlinkt. Worin im Abschnitt „Eine Zeichencodierung wählen und anwenden“ auf den gleichnamigen Artikel verwiesen wird, worin es heißt:

        „Es ist aber wichtig zu verstehen, dass es nicht genügt, die Zeichencodierung im Dokument oder auf dem Server anzugeben. Das ändert nicht die Bytes; Sie müssen den Text in dieser Zeichencodierung speichern. (Die Angabe hilft dem Browser lediglich, die Bytesequenz zu interpretieren, in welcher der Text gespeichert ist.)“

        LLAP 🖖

        PS: Was macht der hässliche gelbe Kasten da? Ich Schlampe …

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory