>> SPEAKER 1: Сега в този последен пример, Припомняме, че ние осеяни някои
JavaScript код вътре в моя HTML, по-специално, в на стойността на
атрибута призова Подайте за тази форма маркер.
Сега за малки страници, този не е толкова голям проблем.
Но като уеб страница става по-дълга и по- сложно, просто поставяте
JavaScript код тук и там вътре на стойността на атрибути не е
най-добър дизайн.
Най-добър, ако ние фактор, който се и най-малко го постави вътре в
етикет скрипт централно.
>> Как да направите това?
Ами нека да се върнем към моя форма и етикет първо да изтриете този атрибут и неговата
ценим като цяло.
След това тук, а не да определи функция, наречена Greet, нека да виси на
на линията на код, който в крайна сметка ние все още ще искате да се изпълни и да се замени
функцията Поздравете както следва.
Document.get Element By ID цитирам цитата демо -
когато демо, изземване, е уникалното идентификатор за себе си формата -
точка на представи, който припомни, е името на манипулатора на събитие, в което
ние сме заинтересовани.
И нека да присвоите на представи манипулатор стойността, която всъщност е
самата функция.
>> Сега забелязвам, че аз не съм в действителност Извикването на функциите тук.
Аз вместо определяне анонимен, иначе известни като функция ламбда,
като се уточни между тези фигурни скоби един куп код, който трябва да
действително да бъде изпълнена.
Конкретно, кодът, който бих искал за изпълнение е, че линията, която имах
и преди, и след това нека прибавим към това връщане фалшиви, така че тази форма не е
в крайна сметка представен до края отдалечен уеб сървър по традиционния начин.
>> Нека сега запишете този файл, да го отворите в браузъра, и да видим какво ще стане.
http://localhost/dom-1.html.
Нека сега въведете в Мое име, David, Изпращане.
И нищо не се появява, за да се случи с изключение на URL адреса на страницата ми изглежда
са се променили, като че формата е всъщност представен на един и същи файл.
>> Сега защо това може да е?
Ами имам нужда от малко повече информация.
Така че нека да вървим напред и да се отворят на Chrome Инструменти за разработчици, така че всъщност мога да
погледнете прозореца на конзолата, за да видите ако съм направил нещо нередно.
I може да има достъп, че чрез няколко начина.
Един от които е чрез това меню тук, след това в Инструменти, а след това надолу, за да
Инструменти за разработчици.
>> И забележи тук, в раздела Console, има незабелязана грешка тип, не може да
определен имот на представи на нула.
Сега защо това може да е?
Ами обратно в моя изходния код тук, известие че при изпращане мисля, че е по-
собственост на елемент, чието уникален идентификатор е демо.
Един елемент, отново, е само възел в дърво.
>> Така се оказва, че навигаторът ми не прави Мисля, че този елемент
или възел съществува все още.
И наистина, това не е така.
Спомнете си, че една уеб страница се прави разбор или да прочетете чрез уеб браузър, отгоре надолу,
от ляво на дясно.
И така, когато JavaScript код е срещат, обикновено, това е екзекутиран
веднага.
>> Но в този случай, ние дори не сме придобили Все още към частта на DOM, на
HTML, в които тази форма с уникален идентификатор демо е била обявена.
И така, ние се опитваме да изпълни моята JavaScript код, преди този възел дори
съществува в дървото, което, разбира се, е проблематично, защото тогава, със сигурност,
самия елемент ще бъде нула в този момент във времето.
>> Е, как да се определи?
Ами ние имаме няколко решения.
Но нека да се опитаме най-простите чрез преместване ми скрипт таг от главата
маркер към тялото ми, но конкретно към долната част на тялото ми страница, така
че е под възли и въпроси.
По-конкретно, да се подчертае и нарязани отворения етикет и затварящия етикет за скрипт
и се премести, че целият блок от код на края на файла тук.
>> Сега това не е непременно най-чистите дизайн, но поне ще
прилагане на правилния ред на операциите.
Нека да запишете файла и заредете в браузъра си.
Нека да презаредите страницата, повторно въвеждане на името ми, и там, Hello David се завръща.