| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
Keke

Medlem i: 3062 dagar Från: Trollhättan
Status: Offline
#718982
|
Skrivet: 2012-01-14 13:10
Ämne: Kan inte lyssna på tangent-event på <body>-taggen i Fi
|
|
|
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:
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 |
|
gurgel
Medlem i: 3770 dagar Från: Örnsköldsvik
Status: Offline
#719005
|
Skrivet: 2012-01-14 18:10
Ämne:
|
|
|
| Du kan kolla på jQuery och $(window).keyDown() för att lyssna av tangentbordet. |
|
|
|
| Till toppen på sidan |
|
Keke

Medlem i: 3062 dagar Från: Trollhättan
Status: Offline
#719011
|
Skrivet: 2012-01-14 18:50
Ämne:
|
|
|
| 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 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 |
|
Keke

Medlem i: 3062 dagar Från: Trollhättan
Status: Offline
#719237
|
Skrivet: 2012-01-17 22:09
Ämne:
|
|
|
| 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 |
|
dinmamma
Medlem i: 2076 dagar
Status: Offline
#719428
|
Skrivet: 2012-01-20 22:24
Ämne:
|
|
|
| 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 |
|
Keke

Medlem i: 3062 dagar Från: Trollhättan
Status: Offline
#719444
|
Skrivet: 2012-01-21 01:00
Ämne:
|
|
|
| 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 |
|
maxxie
Medlem i: 1623 dagar Från: X:6459250 Y:1252192
Status: Offline
#719445
|
Skrivet: 2012-01-21 01:14
Ämne:
|
|
|
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?
1: 2: function testKey()
3: {
4: document.onkeypress = function(){
5: document.getElementById('msg').innerHTML = 'Key down';
6: };
7: }
8:
|
|
|
|
|
| Till toppen på sidan |
|
Keke

Medlem i: 3062 dagar Från: Trollhättan
Status: Offline
#719457
|
Skrivet: 2012-01-21 12:19
Ämne:
|
|
|
| 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 |
|
maxxie
Medlem i: 1623 dagar Från: X:6459250 Y:1252192
Status: Offline
#719458
|
Skrivet: 2012-01-21 12:29
Ämne:
|
|
|
| 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 |
|
|