/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
event.keycode i Netscape?
Fra : Chrisser


Dato : 02-10-03 12:01

Hej

Nedenstående kode ville jeg gerne have til at virke i Netscape, jeg ved det
er event.keycode den ikke bryder sig om. I de situationer hvor jeg vil have
fat i event.srcEvent kan jeg bruge
arguments.callee.caller.arguments[0].target, men jeg kan ikke rigtig sjusse
mig frem til at finde keycode for eventet
Hvad skal jeg bruge ?

<script type="text/javascript">
document.onkeyup = checkKey;
function checkKey() {
var key = event.keyCode;
alert('key: '+key);
}
</script>

- og hvis der er nogle der har et godt link til et sted hvor man kan finde
sådanne oplysninger vil det være dejligt

Chrisser



 
 
Martin Hintzmann And~ (02-10-2003)
Kommentar
Fra : Martin Hintzmann And~


Dato : 02-10-03 12:11

Chrisser wrote:

> Hej
>
> Nedenstående kode ville jeg gerne have til at virke i Netscape, jeg ved det
> er event.keycode den ikke bryder sig om. I de situationer hvor jeg vil have
> fat i event.srcEvent kan jeg bruge
> arguments.callee.caller.arguments[0].target, men jeg kan ikke rigtig sjusse
> mig frem til at finde keycode for eventet
> Hvad skal jeg bruge ?
>
> <script type="text/javascript">
> document.onkeyup = checkKey;
> function checkKey() {
> var key = event.keyCode;
> alert('key: '+key);
> }
> </script>
>
> - og hvis der er nogle der har et godt link til et sted hvor man kan finde
> sådanne oplysninger vil det være dejligt
>


Prøv at se hos pp:k under "Which key has been pressed?"
http://www.xs4all.nl/~ppk/js/events_properties.html

function doSomething(e)
{
   var code;
   if (!e) var e = window.event;
   if (e.keyCode) code = e.keyCode;
   else if (e.which) code = e.which;
   var character = String.fromCharCode(code);
   alert('Character was ' + character);
}

Hintzmann c",)



Chrisser (02-10-2003)
Kommentar
Fra : Chrisser


Dato : 02-10-03 12:21

Martin Hintzmann Andersen wrote:
> Prøv at se hos pp:k under "Which key has been pressed?"
> http://www.xs4all.nl/~ppk/js/events_properties.html

Tak for linket

> function doSomething(e)
> {
> var code;
> if (!e) var e = window.event;
> if (e.keyCode) code = e.keyCode;
> else if (e.which) code = e.which;
> var character = String.fromCharCode(code);
> alert('Character was ' + character);
> }

Det virker absolut fint, men det giver anledning til et spørgsmål. Jeg
tilknyttede den med

document.onkeyup = doSomething;

Og så var jeg i tvivl om hvor jeg skulle få argumentet (e) fra, men det
virker jo uden....
Hvorfor ?

Chrisser



Lasse Reichstein Nie~ (02-10-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 02-10-03 13:01

"Chrisser" <cbjDetteFjernes@egdatainform.dk> writes:

> > function doSomething(e)

> document.onkeyup = doSomething;
>
> Og så var jeg i tvivl om hvor jeg skulle få argumentet (e) fra, men det
> virker jo uden....
> Hvorfor ?

Fordi det du gemmer i document.onkeyup er en funktion. Den bliver kaldt
af browseren når du slipper en knap. I de fleste browsere bliver funktionen
kaldt med et argument: eventen, lige som hvis du selv havde kaldt den med
et argument.

I Internet Explorer bliver den kaldt uden et argument, og eventen er
at finde som den globale variabel "event". Derfor koden
if (!e) e = window.event;
(man bør droppe "var", da "e" som funktionsargument allerede er en
lokal variabel). Hvis funktionen kaldes uden et argument, så vil "e"
få værdien "undefined", og "!undefined" er true (mens "!<event>" er
false).

Jeg starter normalt altid mine event-handlere med
---
function (event) {
event = event || window.event; // IE sucks!
---
Det har samme funktionalitet: Hvis event ikke kom med som argument, så
sæt den lokale variabel "event" til indholdet af den globale event
variabel.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'

Chrisser (02-10-2003)
Kommentar
Fra : Chrisser


Dato : 02-10-03 13:36

Lasse Reichstein Nielsen wrote:
> Fordi det du gemmer i document.onkeyup er en funktion. Den bliver
> kaldt
> af browseren når du slipper en knap. I de fleste browsere bliver
> funktionen kaldt med et argument: eventen, lige som hvis du selv
> havde kaldt den med et argument.
>
> I Internet Explorer bliver den kaldt uden et argument, og eventen er
> at finde som den globale variabel "event". Derfor koden
> if (!e) e = window.event;
> (man bør droppe "var", da "e" som funktionsargument allerede er en
> lokal variabel). Hvis funktionen kaldes uden et argument, så vil "e"
> få værdien "undefined", og "!undefined" er true (mens "!<event>" er
> false).

Tak for forklaringen, så er det ikke underligt at jeg roder rundt i det...

> Jeg starter normalt altid mine event-handlere med
> ---
> function (event) {
> event = event || window.event; // IE sucks!


Chrisser



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste