Često će vam biti potrebno da očitate koje je tastere pritisnuo korisnik – posetilac. Detekcija ovih događaja (pritisak na taster) i kasnija manipulacija (upravljanje) je lakša uz pomoć VBScript, nego uz pomoć JavaScript-a. Zato ćemo vam prikazati kako da „uhvatite“ korisnikove pritiske (KeyPress) na tastaturu.
Da bi u VBScript-u očitali taster, potrebno je prvo da napravimo proceduru koja će da „okida“ svaki put kada se pritisne bilo koji taster u okviru objekta Document. Ova procedura može ovako da izgleda:
Sub Document_onKeyPress()…neki programski kod…
End Sub
Procedura iz prethodnog primera će da izvrši unutrašnji programski kod, svaki put kada se pritisne bilo koji taster na tastaturi. Sada kada znamo kako da očitamo pritisak na tastere, sada je potrebno da pronađemo: kako da otkrijemo koji je tačno taster pritisnut? Ovaj problem je samo malo složeniji nego prethodni, a može da se reši na dva načina:
- ASCII metod – kao što sigurno znate, svakom tasteru na tastaturi je dodeljen jedinstven kod, tako npr. tasteru „Space“ je dodeljen kod 32 (ili heksadecimalno 20). Ovi kodovi su isti i u drugim programskim jezicima (JavaScript, C++ itd.). Ipak, VBScript poseduje neka ograničenja u smislu da su neki tasteri sistemski iskorišćeni od web browser-a, pa nećete moći da ih „iščitate“. Ti tasteri su: funkcijski tasteri, TAB, Backspace, ALT, SHIFT, CTRL, INS, DEL, HOME, END, PAGE UP/DOWN, PRINT SCRN, PAUSE/BRK i drugi. Evo i primera kako da ovom metodom „uhvatite“ i registrujete pritisam na npr. taster „M“:
window.event.keyCode
IF (window.event.keyCode = 109) Then
Msgbox("Upravo ste pritisnuli ‘m’ taster.")
End IF
- CHR metod – koji koristi ugrađenu funkciju „Chr()„, koja omogućava konvertovanje alfanumeričkih ASCII kodova u ekvivalentne string karaktere. U ovom slučaju, iskoristićemo ovu funkciju za pretvaranje alfanumeričkog koda u običan karakter (koji svaki može da razume). Primer koji smo naveli kod prethodne metode prilagodićemo ovoj drugoj:
If (Chr(window.event.keyCode) = "m") Then
Msgbox("Upravo ste pritisnuli ‘m’ taster.")
End If
Ovaj način je mnogo razumljiviji.
Pratite Krstaricu na www.krstarica.com