Toon posts:

[HTML/JS] Keymap voor in webpagina

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mijn vraag is simpel, het antwoord waarschijnlijk niet.
Ik wil dat wanneer mijn webpage ervoor staat er bepaalde shortcutkey combinaties mogelijk zijn om bepaalde delen van de website te bezoeken.

weet iemand hoe dit mogelijk kan worden gemaakt, is het mogelijk een keymap in te laden die commando's vast hangt aan key combinatie's.

Wat ik eigenlijk wil...ik heb een magazine op web, en ik wil dat steeds met twee toetsen de pagina is op te halen. dus 05 is pagina 05, 12 is pagina 12, doodsimpel dus als gebruiker. Maar hoe krijg ik dit voor elkaar.

Ik hoop dat iemand wat weet, ik heb overal gezocht maar kom er niet uit.

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 18-08 10:07

Not Pingu

Dumbass ex machina

met javascript kun je keypresses opvangen. dat is echter clientside code en hoort dus in W&G.

Je hebt echter wel de kans dat de toetsen die je wilt afvangen op bepaalde punten ook ergens anders een functie hebben (bijv. bij invoer in een form of typen in de adresbalk, zou vervelend zijn als het scriptje naar een andere pagina springt als je iets wilt typen).

Misschien is het een idee om gewoon ergens een editbox te maken waarin je dan het paginanummer kunt invoeren?

edit: dat kun je dus als volgt doen:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form blabla>

<!-- de onkeyup event verwijst naar een JS functie -->
  <input type="text" id="paginanr" onkeyup="checkpaginanr(this)"> 
</form>

<!-- het volgende in je <head> -->

<script blabla>
function checkpaginanr(element)
{
  if (getElementById( element ).value.length = 2)
  {
    document.location( getElementById( element ).value + '.html');
  }
}
</script>

[ Voor 33% gewijzigd door Not Pingu op 29-09-2003 18:42 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21-08 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

PW -> WG

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Bedankt, hier kan ik iig al iets mee.

Ik heb de keyboard uitgezet als je op de pagina bent dus de keyboard is onbereikbaar, vanuit daar wil ik dan bepaalde keys openzetten....idg dus de nummerieke en een aantal function keys. Bijv. achter f1 wil ik een soort popup met beschrijving van de shortcutkeys.
Is dit mogelijk?

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 18-08 10:07

Not Pingu

Dumbass ex machina

met document.onkeyup kun je elke keypress afvangen, stel je maakt een functie checkkey() dan zet je in je JS tags gewoon:

document.onkeyup = checkkey();

in de functie checkkey doe je gewoon een paar if-statements m.b.t. de toetsen die je een functie wil geven.

als je echter f1 t/m f12 wilt gebruiken heb je dus wel het probleem dat dat gaat conflicteren met andere functies van die toetsen. als de gebruiker F11 intoetst om naar pagina 11 te gaan, gaat ook zijn brouwser fullscreen, e.d.. lijkt me niet fijn browsen. om van F1, F5 en F7 maar te zwijgen :)

Certified smart block developer op de agile darkchain stack. PM voor info.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

functietoetsen zijn prima af te vangen hoor ;)

voorbeeldje:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function initKeys() {

  // general keyhandler
  if (typeof document.onhelp != 'undefined') {
    document.onkeydown = keyhandler;
    document.onhelp = cancelEvent;
  } else {
    document.onkeypress = keyhandler;
  }

}

function keyhandler(e) {

  if (typeof e == 'undefined') e = event;

  var key = (typeof e.which == 'undefined')? 0:e.which;
  if (key == 0 && typeof e.keyCode != 'undefined') key = e.keyCode;

  switch(key) {

    case 112:
      // doe iets voor F1
      break;
    case 113:
      // doe iets voor F2
      break;

    // etcetera

  }

  // cancel the event
  return cancelEvent(e);

}

function cancelEvent(e) {

  if (typeof e == 'undefined') e = event;

  if (typeof e.preventDefault != 'undefined') {
    e.preventDefault();
  } else if (typeof e.cancelBubble != 'undefined') {
    if (typeof e.keyCode != 'undefined') e.keyCode = 0;
    e.returnValue = 0;
    e.cancelBubble = true;
  }

  return false;

}

Intentionally left blank


Verwijderd

Topicstarter
Ik ben niet zo bekend met het zelf programeren uit het hoofd...
kun je me misschien een voorbeeld geven, met key en met functie

Verwijderd

Topicstarter
Dank je wel Crisp
Pagina: 1