Выступоўца 1: Цяпер у апошнім прыкладзе, Нагадаем, што мы перамяжоўваюцца некаторыя JavaScript код ўнутры майго HTML, У прыватнасці, унутраная частка кошту атрыбут заклікаў Адаслаць для гэтага тэга формы. Зараз для невялікіх старонак, гэта не такое ўжо вялікая справа. Але, як вэб-старонка атрымлівае больш і больш комплекс, проста пакласці вашы JavaScript код тут і там унутры ад кошту атрыбутаў ня лепшы дызайн. Лепш за ўсё, калі мы фактарам, што, і прынамсі паставіць яго ўнутры тэг сцэнара цэнтралізавана. Як гэта зрабіць? Ну давайце вернемся да маёй тэга формы і спачатку выдаліць гэты атрыбут і яго шануеце ў цэлым. Тады тут, а не вызначыць Функцыя называецца Вітайце, давайце трымацца у радку кода, што, у канчатковым рахунку мы будзе па-ранейшаму жадаеце выканаць і замяніць функцыя наступным чынам Вітайце. Document.get Элемент Па ID цытую Unquote дэма - дзе дэма, нагадаем, з'яўляецца адзіным Ідэнтыфікатар для самой форме - кропка на ўявіць, што ўспомніць гэтае імя апрацоўшчыка падзей, у якіх мы зацікаўленыя. І давайце прызначым, што на прадставіць апрацоўшчык значэнне, якое на самай справе функцыянаваць сябе. Зараз звернеце ўвагу, што я на самой справе не выкліку функцыі тут. Я замест вызначэння ананімны, інакш вядомы як функцыю лямбда, , Паказаўшы паміж гэтымі фігурныя дужкі куча кода, які павінен на самай справе выкананы. У прыватнасці, код, які я хацеў бы выканаць тое, што лінія, якая ў мяне была раней, а затым давайце дадамо да таго, што вярнуцца ілжывым, так што гэтая форма не у канчатковым рахунку, прадстаўлены ў канец аддаленага вэб сервер традыцыйным спосабам. Давайце зараз захаваць гэты файл, адкрыць яго ў браўзэры, і паглядзець, што адбываецца. http://localhost/dom-1.html. Давайце зараз ўвесці сваё імя, Дэвід, Адправіць. І нічога не з'яўляецца, адбылося акрамя Адрас маёй старонцы здаецца змяніліся, як быццам форма была фактычна прадстаўлены той жа файл. Цяпер, чаму гэта можа быць? Ну мне трэба больш інфармацыі. Так што давайце ісці наперад і адкрыць у Chrome Прылады распрацоўкі, так што я магу на самой справе паглядзець на акне кансолі, каб убачыць калі я зрабіў нешта не так. Я магу атрымаць доступ, што праз некалькі спосабаў. Адным з іх з'яўляецца дапамогай гэтага меню тут, Затым у меню Сэрвіс, затым ўніз да Прылады распрацоўкі. І звярніце ўвагу, тут на ўкладцы Console, ёсць неперехваченное Памылка тыпу, не можа ўсталяваць ўласнасць на ўявіць, роўным нулю. Цяпер, чаму гэта можа быць? Ну яшчэ ў маім зыходным кодзе тут, апавяшчэнне што на адправіць, я думаю, ўласцівасць элемента, унікальны ідэнтыфікатар з'яўляецца дэма. Элемент, зноў жа, гэта проста вузел у дрэве. Атрымліваецца, што мой браўзэр не думаю, што гэты элемент або вузел існуе яшчэ. І на самай справе, гэта не так. Нагадаем, што вэб-старонка аналізуецца ці чытаць вэб-браўзэрам, зверху ўніз, злева направа. І таму, калі JavaScript код сутыкнуліся, як правіла, ён выконваецца адразу ж. Але ў дадзеным выпадку, мы нават не атрымалі яшчэ ў той частцы DOM, HTML, у якім, што форма з унікальным Ідэнтыфікатар дэма быў абвешчаны. І такім чынам мы спрабуем выканаць мой JavaScript код да гэтага вузла нават існуе ў дрэва, якое, вядома, з'яўляецца праблематычна, таму што тады, безумоўна, сам элемент будзе нулявым на той момант. Так, як выправіць? Ну ў нас ёсць некалькі рашэнняў. Але давайце паспрабуем найпростых шляхам перамяшчэння мой тэг скрыпт з галавы пазначыць да майго цела, але канкрэтна, да дно цела маёй старонкі так што гэта ніжэй вузлоў і пытанні. У прыватнасці, давайце вылучыць і выразаць адкрыты тэг і што зачыняе тэг для сцэнара і становішча, што ўвесь блок кода у ніжняй часткі файла тут. Зараз гэта не абавязкова самы чысты дызайн, але па меншай меры гэта будзе захаванне правільнага парадку аперацый. Давайце захавайце файл і перазагрузіць ў маім браўзэры. Давайце перазагрузіце старонку, паўторна ўваход маё імя, і там, Прывітанне Дэвід вярнуўся.