qualitum logo
Kan inte lyssna på tangent-event på <body>-taggen i Fi

PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Keke



Medlem i: 3062 dagar
Från: Trollhättan
Status: Offline



#718982
Inlägg Skrivet: 2012-01-14 13:10      Ämne: Kan inte lyssna på tangent-event på <body>-taggen i Fi Citera

Jag har märkt att Firefox inte längre verkar tillåta att man lyssnar efter tangentevent på <body>-taggen. Följande kod fungerar i Chrome och Internet Explorer, men inte i Firefox 9:
KOD:
1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3:
<html lang="sv" xmlns="http://www.w3.org/1999/xhtml">
4:
 
5:
<head>
6:
  <title>Key-event test</title>
7:
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8:
  <script type="text/javascript">
9:
    function testKey(e)
10:
      {
11:
      document.getElementById('msg').innerHTML = 'Key down';
12:
      }
13:
  </script>
14:
</head>
15:
 
16:
<body onkeydown="testKey(event);">
17:
 
18:
  <h1 id="msg"></h1>
19:
 
20:
  <p>Just a test</p>
21:
 
22:
</body>
23:
 
24:
</html>

Demosida

När en tangent trycks ner ska meddelandet "Key down" visas. Vet att detta fungerade utmärkt i Firefox 4. En vän testade i Firefox 6, men där fungerade det inte.

Om man flyttar onkeydown till <html>-taggen fungerar det.

Någon annan som märkt av detta? Någon som kan testa i andra versioner av Firefox? Någon som kanske har en förklaring, när Google inte verkar kunna ge någon?

Jag vill bara påpeka att jag aldrig lyssnar efter event på detta sätt utan kör enbart på addEventListener. Men mycket äldre kod använder just detta och fungerar därför inte längre i Firefox.
 

_________________
/Keke
Det heter webbsida, inte hemsida!
Nej, nej, nej, det FINNS inget attribut i HTML som heter language!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
gurgel



Medlem i: 3770 dagar
Från: Örnsköldsvik
Status: Offline



#719005
Inlägg Skrivet: 2012-01-14 18:10      Ämne: Citera

Du kan kolla på jQuery och $(window).keyDown() för att lyssna av tangentbordet.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger ICQ-nummer
Keke



Medlem i: 3062 dagar
Från: Trollhättan
Status: Offline



#719011
Inlägg Skrivet: 2012-01-14 18:50      Ämne: Citera

gurgel skrev:
Du kan kolla på jQuery och $(window).keyDown() för att lyssna av tangentbordet.

Meningen med inlägget var inte att få förslag på andra sätt att lyssna på event, för det har jag själv inga problem med Smile Problemet är gammal kod (som inte jag skrivit) som slutat fungera.
 

_________________
/Keke
Det heter webbsida, inte hemsida!
Nej, nej, nej, det FINNS inget attribut i HTML som heter language!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Keke



Medlem i: 3062 dagar
Från: Trollhättan
Status: Offline



#719237
Inlägg Skrivet: 2012-01-17 22:09      Ämne: Citera

Ingen annan som stött på detta?
 

_________________
/Keke
Det heter webbsida, inte hemsida!
Nej, nej, nej, det FINNS inget attribut i HTML som heter language!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
dinmamma



Medlem i: 2076 dagar

Status: Offline



#719428
Inlägg Skrivet: 2012-01-20 22:24      Ämne: Citera

Funkar det inte bara att omsluta hela sidan med en div och sen sätta onkeydown="testKey(event) på den då?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Keke



Medlem i: 3062 dagar
Från: Trollhättan
Status: Offline



#719444
Inlägg Skrivet: 2012-01-21 01:00      Ämne: Citera

dinmamma skrev:
Funkar det inte bara att omsluta hela sidan med en div och sen sätta onkeydown="testKey(event) på den då?

Det fungerar säkert, men det är inte det det handlar om. Som jag sagt förut, flera gamla sidor på nätet har slutat fungera nu.
 

_________________
/Keke
Det heter webbsida, inte hemsida!
Nej, nej, nej, det FINNS inget attribut i HTML som heter language!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
maxxie



Medlem i: 1623 dagar
Från: X:6459250 Y:1252192
Status: Offline



#719445
Inlägget är accepterad som det rätta svaret Skrivet: 2012-01-21 01:14      Ämne: Citera

Om nu det är så att FF uppdaterar, så finns det säkerligen en lösning för det? Jag har den inte på rak arm i "vanlig" JS... Men man får väl använda sig av onload och köra en funktion som fångar upp onkeydown event istället....

Så jag laddade ner samtliga nedanstående versioner av Firefox.
Och testade din demosida...
FF: 3.6.25 = fungerar
FF: 4.0.0 = fungerar
FF: 5.0.0 = fungerar
FF: 6.0.0 = fungerar
FF: 7.0.0 = fungerar
FF: 8.0.0 = fungerar
FF: 9.0.0 = fungerar INTE
FF: 10b4 = fungerar
FF: 11a2 = fungerar

Så, här ser vi då att i FF 9.0.0 fungerar INTE onkeypress i body-taggen...
Lösning? Smile
KOD:
1:
 
2:
function testKey()
3:
      {
4:
         document.onkeypress = function(){
5:
         document.getElementById('msg').innerHTML = 'Key down';
6:
         };
7:
      }
8:
 
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida ICQ-nummer
Keke



Medlem i: 3062 dagar
Från: Trollhättan
Status: Offline



#719457
Inlägg Skrivet: 2012-01-21 12:19      Ämne: Citera

maxxie skrev:
Om nu det är så att FF uppdaterar, så finns det säkerligen en lösning för det? Jag har den inte på rak arm i "vanlig" JS... Men man får väl använda sig av onload och köra en funktion som fångar upp onkeydown event istället....

Så jag laddade ner samtliga nedanstående versioner av Firefox.
Och testade din demosida...
FF: 3.6.25 = fungerar
FF: 4.0.0 = fungerar
FF: 5.0.0 = fungerar
FF: 6.0.0 = fungerar
FF: 7.0.0 = fungerar
FF: 8.0.0 = fungerar
FF: 9.0.0 = fungerar INTE
FF: 10b4 = fungerar
FF: 11a2 = fungerar

Tack, då är det helt enkelt en bugg i Fx 9.0. Version 10 lär väl komma om någon månad antar jag.
 

_________________
/Keke
Det heter webbsida, inte hemsida!
Nej, nej, nej, det FINNS inget attribut i HTML som heter language!
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
maxxie



Medlem i: 1623 dagar
Från: X:6459250 Y:1252192
Status: Offline



#719458
Inlägg Skrivet: 2012-01-21 12:29      Ämne: Citera

Keke skrev:
maxxie skrev:
Om nu det är så att FF uppdaterar, så finns det säkerligen en lösning för det? Jag har den inte på rak arm i "vanlig" JS... Men man får väl använda sig av onload och köra en funktion som fångar upp onkeydown event istället....

Så jag laddade ner samtliga nedanstående versioner av Firefox.
Och testade din demosida...
FF: 3.6.25 = fungerar
FF: 4.0.0 = fungerar
FF: 5.0.0 = fungerar
FF: 6.0.0 = fungerar
FF: 7.0.0 = fungerar
FF: 8.0.0 = fungerar
FF: 9.0.0 = fungerar INTE
FF: 10b4 = fungerar
FF: 11a2 = fungerar

Tack, då är det helt enkelt en bugg i Fx 9.0. Version 10 lär väl komma om någon månad antar jag.

Japp, släpps den 31 januari.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida ICQ-nummer
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo