Изпълнете скрипта при зареждането на страницата (DOM) - стека преливане на Руски
За тези, които не знаят, защо не работи скриптове във връзка с елементите на формата :
Сценарият се опитва да си взаимодействат с елементите на HTML страници, които са по-долу кода от самата сценария. Съответно, сценарият трябва да се зареди, и елементът ще работи, но все пак с тази нужда. Поради тази причина, нищо няма да работи.
Опции за справяне с този проблем:
Един от най-лесните начини - да се движат в тялото, след като всички елементи. С тази уговорка, първо изтеглите DOM, а след това сценария. например:
Най-лесният начин, който идва на ум за всички новодошли - точка функцията в window.onload. например:
Можете да добавите и чрез window.addEventListener ( "товар".); или window.attachEvent ( "при зареждане.);
Но този метод има и недостатък: Ако страницата на сайта един куп снимки, които се зареждат за около половин час, след което програмата ще бъде изпълнена само след изтеглянето на всички снимки, и тя може да заема много време.
Друг недостатък е, че не можете да използвате някои функции по този начин. Т.е. ако сте използвали два пъти window.onload код, втората функция ще изтрие първия. Но за да го оправи, аз написах една интересна патерица:
Интересен вариант - нещо между първата и втората алинея. Създаване на потребителска функция, и го наричат чрез скрипт в края на тялото. например:
Твърде, от най-популярните методи - да случай на тялото при зареждане. например:
Метод enStackOveflow - стартиране функция document.onreadystatechange и document.readyState. например:
Достатъчно е да се по нов начин - чрез стартирането на манипулатор DOMContentLoaded. например:
Подкрепа за този метод започва с IE9 +
Е, опциите са с библиотеки. И първата ни библиотека JQuery ScriptJava. например:
Допълнително устройство, което ще работи за всеки, който използва JQuery - използвайте JQuery :). например:
Все още имате възможност да използвате UI YAHOO. За съжаление, до този метод на работа, трябва да се свържете най-много два сценария: Yahoo-мин и събитие-мин. например:
И накрая най-moronic странно и не винаги работи версия - използвайте setTimeout. например:
Това е всички възможности, които съм срещал, но може би не е единственият, както и останалите gavnokodery уеб програмистите могат да дойдат с техните патерици функционират, за да се реши този проблем.
Коя опция за използване зависи от вас :)