>> Sprecher 1: Jetzt in diesem letzten Beispiel erinnern, dass wir einige setzt
JavaScript-Code innerhalb meiner HTML, Insbesondere innerhalb des Wertes
Auf das Attribut namens Senden für das Formular-Tag.
Jetzt für kleine Seiten, diese ist nicht so eine große Sache.
Aber wie eine Web-Seite bekommt mehr und mehr komplex, einfach indem Sie Ihren
JavaScript-Code hier und da im Inneren der Wert der Attribute nicht der
beste Design.
Am besten, wenn wir den Faktor, dass Sie und zumindest legte es in der
die Script-Tag zentral.
>> Wie das geht?
Nun kommen wir zu meiner Form-Tag zurückkehren und zuerst dieses Attribut und seinen löschen
Wert insgesamt.
Dann ist hier oben, anstatt definieren ein Funktion namens Greet, lassen Sie uns hängen
auf die Codezeile, die wir letztlich wird immer noch für die Ausführung und ersetzen
Greet der Funktion wie folgt.
Document.get Element von ID zitieren unquote demo -
wo Demo, Rückruf, ist die einzigartige Kennung für die Form selbst -
Punkt auf einreichen, die daran erinnern, der Name ist der Event-Handler, in dem
wir interessiert sind.
Und lassen Sie uns zuweisen, dass anschließend auf Handler der Wert, der eigentlich ein
funktionieren sich.
>> Jetzt bemerken, dass ich nicht wirklich fordern hier eine Funktion.
Ich bin stattdessen definieren eine anonyme, anders als Lambda-Funktion bekannt ist,
indem Sie zwischen diesen geschweiften Klammern ein Haufen von Code, der sollte
tatsächlich ausgeführt werden.
Genauer gesagt, der Code, die ich gerne ausgeführt ist, dass Zeile, die ich hatte
vor, und dann ist hinzuzufügen, dass wir false zurück, so dass diese Form nicht
letztlich vorgelegt Remote-Web-Ende Server in der traditionellen Art und Weise.
>> Retten wir nun diese Datei, öffnen Sie es in einem Browser, und sehen, was passiert.
http://localhost/dom-1.html.
Lassen Sie uns jetzt geben in meinem Namen, David, Senden.
Und nichts scheint zu geschehen, außer die URL meiner Seite scheint
haben sich geändert, als ob die Form war tatsächlich auf die gleiche Datei geschrieben.
>> Nun, warum könnte das sein?
Nun, ich brauche weitere Informationen.
Also lassen Sie uns gehen Sie vor und öffnen Chrome Entwickler-Tools, so dass ich eigentlich
Blick auf das Konsolenfenster zu sehen wenn ich etwas falsch gemacht habe.
I über zuzugreifen, dass ein paar Möglichkeiten.
Eines davon ist über dieses Menü hier, dann unter Extras, dann auf
Entwickler-Tools.
>> Und hier in der Registerkarte Console bemerken, es gibt eine nicht abgefangene Fehlertyp, kann nicht
gesetzt Immobilie auf null einreichen.
Nun, warum könnte das sein?
Nun wieder in meinem Quellcode hier, Kündigung dass auf absenden ich denke, ist ein
Eigenschaft des Elements, dessen eindeutige Kennung Demo.
Ein Element ist wiederum nur ein Knoten in einem Baum.
>> So scheint es, dass mein Browser nicht denken, dass das Element
oder noch Knoten vorhanden ist.
Und in der Tat, ist es nicht.
Daran erinnern, dass eine Web-Seite analysiert wird oder lesen durch einen Web-Browser von oben nach unten,
von links nach rechts.
Und so, wenn der JavaScript-Code ist auftreten, in der Regel, es ist ausgeführt
sofort.
>> Aber in diesem Fall haben wir noch nicht gekommen noch zu dem Teil der dom, die
HTML, in dem diese Form mit einer einzigartigen Kennung Demo erklärt wurde.
Und so versuchen wir, die Ausführung meiner JavaScript-Code vor diesem Knoten selbst
besteht in der Struktur, die natürlich ist problematisch, weil dann sicher,
das Element selbst ist null zu diesem Zeitpunkt.
>> So wie sie zu beheben?
Nun, wir haben ein paar Lösungen.
Aber lassen Sie uns versuchen, die einfachste durch die Verlagerung mein Skript-Tag aus dem Kopf
markieren, um meinen Körper, aber insbesondere in Richtung der Boden der Körper meiner Seite ist so
dass es unter den Knoten und Fragen.
Genauer gesagt, wollen wir hervorheben und schneiden der offene Tag und in der Nähe Tag für Skript
und zu verlagern, dass die gesamte Codeblock zum Ende der Datei hier.
>> Nun ist dies nicht unbedingt der sauberste Design, aber zumindest wird es
durchzusetzen, die richtige Reihenfolge der Operationen.
Lassen Sie die Datei speichern und laden in meinem Browser.
Lassen Sie die Seite neu laden, neu eingegeben meinem Namen, und es ist Hallo David zurück.