[Firefox] event.keypress werkt niet

Pagina: 1
Acties:
  • 100 views sinds 30-01-2008
  • Reageer

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 30-11 16:43
Ik heb de volgende functie:
JavaScript:
1
2
3
4
5
6
7
function keyPress() {
if(event.keyCode==27 && document.getElementById('content_overlay').style.display=='inline') {
  hideOverlay();
  hideTooltipImmediately('msg_tooltip');
 }
}
document.onkeypress=keyPress;

Deze werkt prima in IE en Opera, echter niet in Firefox.

Ik heb direct gegoogled op dit probleem en kom tegen dat Firefox geen event.keyCode (of event.keycode) ondersteund, ik vind alternatieven zoals event.which, event.charCode etc.. maar dit alles lijtk niet te werken. Ook zou ik de functie moeten aanspreken als:
document.onkeypress=keyPress(event);

maar ook dit geeft Javascript errors. Iemand enig idee? _/-\o_

  • MrVulcan
  • Registratie: Mei 2005
  • Laatst online: 22-09 10:50
Volgens mij zou dit wel moeten werken.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function keyPress(e) {
  var keynum;
  if(window.event){ keynum = e.keyCode; }
  else if(e.which){ keynum = e.which; }
  if(keynum==27 && document.getElementById('content_overlay').style.display=='inline'){
    hideOverlay();
    hideTooltipImmediately('msg_tooltip');
  }
  return true;
}

document.onkeypress=keyPress;

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 30-11 16:43
MrVulcan schreef op vrijdag 25 mei 2007 @ 13:43:
Volgens mij zou dit wel moeten werken.

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
function keyPress(e) {
  var keynum;
  if(window.event){ keynum = e.keyCode; }
  else if(e.which){ keynum = e.which; }
  if(keynum==27 && document.getElementById('content_overlay').style.display=='inline'){
    hideOverlay();
    hideTooltipImmediately('msg_tooltip');
  }
  return true;
}

document.onkeypress=keyPress;
Bedankt voor je hulp maar helaas werkt dit niet, ik krijg in Firefox een javascript error:
e is not defined :?

Volgens mij had ik soortgelijke code ook al eerder geprobeerd.
Is het niet zo dat ik dan een document.onkeypress=keyPress(event); moet doen?
Echter krijg ik daarop dan ook een foutmelding...

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 30-11 16:43
Thanks! Die pagina had ik wel al gezien, echter lijkt dat ook niet te werken in mijn functie, volgens die pagina ondersteund firefox namelijk gewoon onkeypress i.c.m. event.keyCode, toch?

  • disjfa
  • Registratie: April 2001
  • Laatst online: 04-11 11:05

disjfa

be

Urk schreef op vrijdag 25 mei 2007 @ 14:04:
[...]
Thanks! Die pagina had ik wel al gezien, echter lijkt dat ook niet te werken in mijn functie, volgens die pagina ondersteund firefox namelijk gewoon onkeypress i.c.m. event.keyCode, toch?
Dan stap je naar de onKeyDown ;)

disjfa - disj·fa (meneer)
disjfa.nl


  • MrVulcan
  • Registratie: Mei 2005
  • Laatst online: 22-09 10:50
Probeer dit eens.
JavaScript:
1
2
3
4
5
6
7
8
9
    <script type="text/javascript">
        function keyPress(e) {
          var e = e || window.event;
          var kCode = e.keyCode || e.which;
          if(kCode && '27' == kCode){alert('esc');}
          return true;
        }
        document.onkeypress = keyPress;
    </script>

  • Urk
  • Registratie: Maart 2000
  • Laatst online: 30-11 16:43
disjfa schreef op vrijdag 25 mei 2007 @ 14:09:
[...]

Dan stap je naar de onKeyDown ;)
Werkt ook niet, heb de volgende code geprobeerd:
JavaScript:
1
2
3
4
5
6
7
8
9
function keyPress() {
alert('test');
alert(event.keyCode);
if(event.keyCode==27 && document.getElementById('content_overlay').style.display=='inline') {
  hideOverlay();
  hideTooltipImmediately('msg_tooltip');
 }
}
document.onkeydown=keyPress;


In Firefox 2.0.0.3 krijg ik wel de eerste test alert te zien, en daarna een javascript foutmelding (op regel 3):
event is not defined

Ondersteund firefox dus geen event? Ik snap er echt helemaal niets van... |:(

[ Voor 3% gewijzigd door Urk op 25-05-2007 14:21 ]


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

crisp

Devver

Pixelated

standards-compliant browsers sturen het event-object mee als argument aan de functie, MrVulcan illustreerd al hoe je daarmee het beste kan omgaan:
JavaScript:
1
2
3
4
5
6
function eventHandler(e)
{
  e = e || event;

  // 'e' is nu een referentie naar je event-object in alle browsers
}

Intentionally left blank


  • Urk
  • Registratie: Maart 2000
  • Laatst online: 30-11 16:43
crisp schreef op vrijdag 25 mei 2007 @ 14:57:
standards-compliant browsers sturen het event-object mee als argument aan de functie, MrVulcan illustreerd al hoe je daarmee het beste kan omgaan:
JavaScript:
1
2
3
4
5
6
function eventHandler(e)
{
  e = e || event;

  // 'e' is nu een referentie naar je event-object in alle browsers
}
OK Thanks! Ik had event meegegeven bij het aanroepen van de functie, wat dus niet hoeft. Thanks!
Ik heb nu der onderstaande functie en die werkt prima!
JavaScript:
1
2
3
4
5
6
7
8
9
function keyPress(e) {
 var e = e || window.event;
 var kcode = e.keyCode || e.which;
 if(kcode && kcode==27) {
   hideOverlay();
   hideTooltipImmediately('msg_tooltip');
  }
 }
document.onkeypress = keyPress;


MrVulcan en crisp _/-\o_ _/-\o_
Pagina: 1