Można śmiało powiedzieć, że cała magia JavaScriptu opiera się na zdarzeniach i akcjach wykonywanych po odebraniu któregoś z nich. Zdarzenia to na przykład wpisanie tekstu do formularza, kliknięcie w link, umieszczenie kursora nad obrazkiem, załadowanie dokumentu i tym podobne. Bez nich praktycznie nie istniałyby skrypty.
Aby obsłużyć jakieś zdarzenie potrzeba je przechwycić i wykonać odpowiedni kod. Netscape wprowadził do HTML-a nowe atrybuty obsługujące zdarzenia takie jak onclick, onmouseover, onsubmit — Microsoft podążył tym szlakiem i w końcu okazało się, że jest ich po prostu masa.
Mało kto zdaje sobie sprawę, że to rozwiązanie jest wręcz starożytne.