29. marts 2001 - 13:59Der er
6 kommentarer og 1 løsning
keypress på input i Netscape 4
Findes der mon et hack der gør at jeg kan få fat i \"pil op\",\"pil ned\",\"page up\" og \"page down\" keypress events på en <input type=text> i Netscape 4.7?
Jeg ved ikke hvor langt du selv er nået med problemet, men her er hvad jeg lige biksede sammen for at undersøge sagen (skrevet udelukkende til Netscape):
<FORM NAME=\"form1\"> <INPUT TYPE=\"text\" NAME=\"input1\" VALUE=\"skriv noget her\"> </FORM> <SCRIPT LANGUAGE=\"javascript\" TYPE=\"text/javascript\"> <!-- var inp = document.forms[\"form1\"].elements[\"input1\"];
function hKeyDown(e){ if (e.target == inp) alert(\"Du må skam ikke skrive her\"); return false; }
Desværre ser dette ud til kun at virke med taster, som skriver et ASCII-tegn (bogstaver, tal, tegn, space), samt backspace og enter. Scriptet virker ikke med funktions-taster som Ctrl, Alt, Page Up-Dwn, piletaster osv.
Jeg er næsten bange for at dette er en begrænsning ved NS4.x\'s event model; altså noget man ikke kan komme uden om, men jeg er ikke sikker, så jeg vil jævnligt vende tilbage for at se om nogen har løst problemet.
Eventen fanges men which er bare nul. for piltaster og de funktionstaster der ikke bliver interceptet til hotkey brug. ctrl og shift fanges og kan kan aflæses i modifiers. Det må skida være muligt. For dumt med en event der sker men ikke fortæller hvem den er.
jakoba >> nu ser da først umuligt ud! - problemet dansermeddhtml har er nemlig først og fremmest at keydown eventen slet ikke fanges af et text input felt - det fanger kun ikke-funktions taster
jakoba >> sandt nok, men for det meste kan man jo cancel default behavior, sagt på godt dansk, ved at returnere false når eventen fanges. Jeg tænker her på fx. højreklik i NS4...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.