ЗВУЧНИК 1: Сега во тој последен пример, потсетиме дека ние прошарани некои JavaScript код во внатрешноста на мојот HTML, конкретно, во внатрешноста на вредноста на атрибутот повика Прати за таа форма таг. Сега за мали страници, ова не е толку голема работа. Но, како веб страница добива повеќе и повеќе комплекс, едноставно поставување на вашиот JavaScript код тука и таму внатре на вредноста на својства не е најдобар дизајн. Најдобро ако ние фактор што излезе и барем да го стави во внатрешноста на сценариото таг средината. Како да го направите ова? Добро, ајде да се врати на мојата форма таг и Првиот избришете овој атрибут и нејзините вредност заедно. Потоа тука, наместо да се дефинира функција наречена Поздравете, ајде да се откажам од на линија на кодот кој на крајот ние се уште ќе сакате да се изврши и да ја замени на Поздравете функција како што следува. Document.get елемент со проект цитирам unquote демо - каде демо, да се потсетиме, е уникатен идентификатор за формата себе - точка на поднесете, кој се потсетиме е името на ракувачот со настани на кои ние сме заинтересирани. И ајде да доделите дека на управувачот поднесе вредноста што е всушност себе функционираат. Сега се забележи дека не сум всушност повикувајќи функција овде. Јас сум наместо дефинирање анонимен, инаку позната како ламбда функција, со впишување помеѓу овие големи загради еден куп на код кој треба да всушност да биде погубен. Поточно, на кодот кој би сакал да се изврши е дека линијата што ја имав пред, а потоа нека го додадеме дека враќање false, така што оваа форма не е на крајот доставен до крајот на далечинскиот управувач веб сервер во традиционален начин. Ајде сега да се спаси оваа датотека, отворете го во прелистувачот, и да видиме што се случува. http://localhost/dom-1.html. Ајде сега напишеш во мое име, Давид, Submit. И ништо не чини да се случи освен рачно мојата страница се чини дека се менуваат како иако форма е всушност доставува до иста датотека. Сега, зошто тоа може да биде? Па, јас треба малку повеќе информации. Па ајде да одиме напред и да се отвори Хром Алатки за програмери, така што можам да всушност се погледне на конзола прозорецот за да ја видите ако јас го направив нешто погрешно. Можам да пристапите дека преку неколку начини. Од кои една е преку ова мени овде, потоа под Tools, потоа надолу за да Алатки за програмери. И ќе забележите тука во јазичето Конзола, таму е Uncaught тип грешка, не може постави сопственост на поднесува од нула. Сега, зошто тоа може да биде? И назад во мојот изворниот код овде известување дека на поднесат мислам дека е сопственост на елементот чие единствен идентификатор е демо. Елемент, пак, е само јазол во дрво. Па се чини дека мојот пребарувач не мислам дека тој елемент или јазол постои уште. И навистина, тоа не го прави. Потсетиме дека на веб-страница е разложени или да прочитате од страна на веб прелистувачот, од врвот до дното, лево кон десно. И така, кога JavaScript код е се среќава, обично, тоа е погубен веднаш. Но, во овој случај, имаме дури и не добиле уште на делот на ДОМ, на HTML, во која таа форма со уникатен идентификатор демо е декларирана. И така ние се обидуваме да се изврши мојата JavaScript код пред тој јазол дури и постои во дрво кое, се разбира, е проблематична, бидејќи тогаш сигурно, самиот елемент ќе бидат ништовни во тој момент во времето. Па, како да се поправи? Па ние имаме неколку решенија. Но, ајде да се обидеме наједноставниот преку алокација на мојата скрипта таг од главата ознака на моето тело, но конкретно, кон на дното на тело мојата страница, така дека тоа е под јазли и прашања. Поточно, да се потенцира и намалување на отворен таг и тагот за затворање на сценариото се преселат дека целиот блок од кодот на дното на датотеката тука. Сега тоа не е нужно најчистите дизајнира, но барем тоа ќе спроведе правилен редослед на операциите. Ајде да ја зачувам датотеката и Вчитај ја страната повторно во мојот интернет пребарувач. Ајде да ја превчитате страница, повторно внесување моето име, и таму, Здраво Давид е назад.