Avatar billede gertnissen Nybegynder
20. juni 1999 - 22:57 Der er 26 kommentarer og
1 løsning

Brug af tastatur-genveje i HTML dokument.

I HTML/JavaScript nævnes muligheden for access-keys og for test af keypress/up/down.

Hvordan laver jeg, så det bliver muligt at bruge eks. ALT-O til at vælge f.eks. OK/submit knappen i en form.

Løsningen skal kunne bruges til Netscape 4.02 til OS/2 (evt. også til Netscape 3 også til OS/2)

Det er altså IKKE tastatur genveje til brug for selv browseren jeg ønsker, men til navigering/flytte focus til elementerne i en form i HTML-dokumentet med brug af tastaturet (dvs, ikke mus eller tab).
Avatar billede s Nybegynder
20. juni 1999 - 23:06 #1
Hmm, kigger lige på det...
Avatar billede cyberesben Nybegynder
20. juni 1999 - 23:40 #2
gert>> hvem i alverden bruger OS/2 ?

linux ER opfundet *GG*

nåh men jeg må lige kigge på det... noget med nogle UNICODE tal
Avatar billede s Nybegynder
21. juni 1999 - 00:00 #3
Det må blive noget i retning af et html-dokument der ser sådan ud...


<html>
<head>
<script launguage="JavaScript">
alt = "up"
o = "up"
function keydown(keycode)
{


if (keycode == 18)
{
alt = "down"
check()
}

if (keycode == 79)
{
o = "down"
check()
}

}


function keyup(keycode)
{


if (keycode == 18)
alt = "up"

if (keycode == 79)
o = "up"


}


function check()
{

if (alt == "down" && o == "down")
HER SKAL STÅ HVAD DER SKAL SKE NÅR TASTERNE ER NEDE



}




</script>
</head>
<body onkeydown="keydown(event.keyCode)" onkeyup="keyup(event.keyCode)">
</body>
</html>


I linien hvor jeg har skrevet:

HER SKAL STÅ HVAD DER SKAL SKE NÅR TASTERNE ER NEDE
skriver du hvad der skal ske når både alt og o er nede.



M.v.h.

      Svend H. B. Henriksen.
Avatar billede wip13 Nybegynder
21. juni 1999 - 09:49 #4
hmmm, i IE4.0 siger den fejl i linje 44. Nedenunder "if (alt == "down" && o == "down")" står der "HER SKAL STÅ HVAD DER SKAL SKE NÅR TASTERNE ER NEDE" og der giver den fejl ved mig.
Avatar billede cyberesben Nybegynder
21. juni 1999 - 09:56 #5
wip>> det er sgu da fordi du skal skrive en funktion dernede!!!
Avatar billede wip13 Nybegynder
21. juni 1999 - 10:41 #6
ups!!
:o)
Avatar billede gertnissen Nybegynder
27. juni 1999 - 21:51 #7
Jeg kan fint få dit forslag S til at virke i IE4 (eks. med et alert() ) men ikke i Netscape 4 til OS/2. Og jeg tror jeg selv har fundet ud af hvorfor, netscape bruger ikke samme unicode tabel som explorer men derimod en ala acsii tabellen, derudover kan det heller ikke lykkedes mig at fange ALT knappen da den tilsyneladende returnere værdien "0" ligesom shift, enter og andre.

Nyt forslag meget velkomment !
Avatar billede cyberesben Nybegynder
28. juni 1999 - 01:19 #8
underligt
Avatar billede justincase Nybegynder
29. juni 1999 - 13:22 #9
Nej problemet med NN er at den ikke har initialiseret Key eventen.

Det gøres sådan her :

var isNN=document.layers;
function init() {
  if (isNN) {
    docuemnt.captureEvents(Event.KEYDOWN &#124;&#124;Event.KEYUP)
    document.onkeydown = keyDown;
    docuement.onkeyup = keyUp;
  }
}

Og så skal der laves lidt om på funktionen :

function keyup(e,keycode) {
  if (isNN) {
    keycode = e.which;
  }
  if (keycode == 18)
    alt = "up"
  if (keycode == 79)
    o = "up"
}


og kaldet :
onkeyup="keyup('',event.keyCode)"


:)

JustinCase
Avatar billede justincase Nybegynder
29. juni 1999 - 13:23 #10
Det skulle selvfølgelig være :
document.onkeydown = keydown;
document.onkeyup = keyup;

og så skal keydown også laves om...
Avatar billede justincase Nybegynder
29. juni 1999 - 13:25 #11
og
onkeyup="keyup('',event.keyCode)"
Avatar billede justincase Nybegynder
29. juni 1999 - 13:26 #12
Hvorfor laver eksperten to ' om til et ' ????
Avatar billede cyberesben Nybegynder
29. juni 1999 - 13:59 #13
det ved jeg ikke... prøver lige...

dette her er et citationstegn: "
dette er en apostrof: '
dette her er to citationstegn: ""
dette er to apostroffer: ''
Avatar billede cyberesben Nybegynder
29. juni 1999 - 14:00 #14
ej hvor underligt... prøv lige at maile admin om problemet
Avatar billede gertnissen Nybegynder
01. juli 1999 - 22:52 #15
Inden jeg evt. afviser dit svar Justincase, kan du så ikke beskrive initialiseringen lidt bedre eller evt. poste hele scriptet. Jeg kan ikke få det til at virke.

Til Cyberesben, I næsten alle finansielle institutter bruger man stadig OS/2. Dvs. omkring 50.000 arbejdspladser bruger OS/2 idag, alene i banker og forsikringsvirksomheder.


Avatar billede cyberesben Nybegynder
06. juli 1999 - 03:00 #16
ok... det var da interessant... det havde jeg sgu ikke regnet med
Avatar billede gertnissen Nybegynder
08. juli 1999 - 21:49 #17
Hej justincase

Da jeg ikke kan få dit forslag til at virke, bliver jeg nød til at afvise dit svar. Men du må meget gerne uddybe det, det kan være jeg har lavet noget galt.
Avatar billede justincase Nybegynder
09. juli 1999 - 10:24 #18
Jeg har siddet lidt med det, og kan heller ikke selv få det til at køre ordentligt.

Jeg tror måske ikke at NN kan fange events på selve dokumentet. Men den kan i hverttilfælde i eks. <input type=text>. _Skal_ det være på hele dokumentet ??. Så må vi se om der ikke er en workaround på en eller anden måde.

Jeg kigger lidt videre.

:)

JustinCase
Avatar billede justincase Nybegynder
09. juli 1999 - 11:13 #19
OK, problemet er at [ALT] og andre funktionstaster ikke blive fanget.

Hvis du kan klare dig uden kan det lade sig gøre.

:)

JustinCase
Avatar billede justincase Nybegynder
10. juli 1999 - 12:55 #20
Og det passer så ikke helt.
[ALT] bliver rigtig nok ikke fanget i NN, jeg ku' ikke få den til det ihvertilfælde.

Men her er et script som virker hos mig. Du må skrive hvis du ikke kan få det til at virke.

Det bruger [CTRL][ENTER] for at submitte :

<html>
<head>
<script language="JavaScript">
NS = (document.layers) ? 1 : 0;
var theKeys = "";

if (NS) {
  document.captureEvents(Event.KEYUP &#124;&#124; Event.KEYPRESS);
  document.onkeypress = keyDown;
  document.onkeyup = reset;
}

function keyDown(e) {
  key = (NS) ? e.which : event.keyCode;
  if (NS) {
    if (e.modifiers == 1)  theKeys = 'alt';
    else if (e.modifiers == 2) theKeys = 'ctrl';
    else if (e.modifiers == 3) theKeys = 'ctrl-alt';
    else if (e.modifiers == 4) theKeys = 'shift';
    else theKeys = e.modifiers;
  }
  else {
    if (event.altKey) theKeys = 'alt';
    else if (event.shiftKey) theKeys = 'shift';
    else if (event.ctrlKey) theKeys = 'ctrl';
    else if (event.ctrlKey && event.altKey ) theKeys = 'ctrl-alt';
  }
  theKeys += key;
  check();
}

function reset() {
  theKeys = "";
  check();
}

function check() {
  if ( NS ) {
    if (theKeys == 'ctrl10') {
      alert('Subit');
      // document.out.submit();
    }
  }
  else {
    if (theKeys == 'ctrl13') {
      alert('Subit');
      // document.out.submit();
    }
  }
}


</script>
</head>
<body onKeyDown="keyDown()" onKeyUp="reset()">
<form name="out">
  <input type=text name="put">
</form>
</body>
</html>


Håber det var det

:)

JustinCase
Avatar billede gertnissen Nybegynder
26. august 1999 - 21:41 #21
Med 'lidt' forsinkelse bliver jeg desværre nød til at afvise dit svar justincase, jeg kan ikke få det til at virke som forventet. Det virker fint med at fange alm. bogstaver og lign. men ikke med alt. CTRL-O giver eks. open page i Netscape, så jeg tror at jeg helt bliver nød til at droppe tanken om styring med tastaturet. Desværre, men tak for indsatsen.
Avatar billede s Nybegynder
26. august 1999 - 21:43 #22
dummy
Avatar billede wip13 Nybegynder
27. august 1999 - 16:02 #23
det var da et mærkeligt svar!?
Avatar billede gertnissen Nybegynder
28. august 1999 - 08:14 #24
dummy ?
Avatar billede s Nybegynder
28. august 1999 - 20:49 #25
glem det... det var før man selv kunne svare...
Avatar billede wip13 Nybegynder
29. august 1999 - 07:15 #26
ok :)
Avatar billede gertnissen Nybegynder
04. december 2000 - 15:27 #27
Tja, der kom intet svar der kunne præcist kunne hjælpe med en løsning på mit halvandet år gamle spørgsmål.

Konklusionen var at det ikke er muligt at fange eks. ALT-O i Netscape.

Jeg lukker og slukker..
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester