Avatar billede lassemelbye Nybegynder
27. august 2006 - 19:34 Der er 12 kommentarer

window.event.srcElement; i Firefox

Jeg skal bruge en funktion, som vikrer i stedet for window.event.srcElement;
I Firefox.
Den virker jo i IE
Avatar billede farving Nybegynder
27. august 2006 - 19:36 #1
Det hjælper i hvertfald ikke at oprette to spørgsmål...

Mvh Carsten
Avatar billede softspot Forsker
27. august 2006 - 21:05 #2
event.target er det der i FF svarer til event.srcElement i IE.
Avatar billede softspot Forsker
27. august 2006 - 21:09 #3
...men du kan ikke få fat i eventet på samme måde i FF som du kan i IE. Event-objektet kommer som parameter til den event-funktion der udføres. F.eks.

<script type="text/javascript">
function clickEvent(evt) {
  var e = (e : e ? window.event);
  if(typeof e.target != "undefined")
    alert("Mozilla");
  else if(typeof e.srcElement != "undefined")
    alert("IE");
  else
    alert("Ukendt");
}
</script>
<a href="#" onclick="clickEvent()">Klik mig</a>
Avatar billede lassemelbye Nybegynder
28. august 2006 - 17:59 #4
Forstår det ikke helt?
Avatar billede softspot Forsker
28. august 2006 - 18:23 #5
OK, men det vil være lettere at hjælpe dig videre, hvis du forklarer hvad du ikke forstår :)
Avatar billede lassemelbye Nybegynder
29. august 2006 - 12:48 #6
Parameteret
Avatar billede softspot Forsker
29. august 2006 - 13:32 #7
Ja, hvad med det?

PS. Det ville gøre kommunikationen meget lettere hvis du lige brugte 3 minutter på t formulre dig, med lidt længere sætninger, så du fik uddybet hvad det er du snakker om... husk på at de fleste af os ikke er istand til at læse dine tanker...


I øvrigt: har du prøvet at smide den stump kode ind i en html-fil og prøve at køre den i IE og FF? Det kan være du kan se effekten hvis du prøver det af i praksis...
Avatar billede lassemelbye Nybegynder
29. august 2006 - 14:33 #8
Hej.
Jeg forstår ikke hvad parameteret "evt" er der for. Den bliver jo ikke brugt når vi tilkalder funktionen?
Og hvor kommer værdigen af variablen "e" fra?
Avatar billede farving Nybegynder
29. august 2006 - 23:12 #9
tror ikke den parameter "evt" bliver brugt, tror mere det er en henvisning til at du til komme mere på? fordi i kaldet af funktionen sendes der ingen parametre med :)

Mvh Carsten
Avatar billede softspot Forsker
29. august 2006 - 23:27 #10
OK, på den måde.

Jo, FireFox (og andre Gecko-browsere - såvidt jeg er informeret), sender automatisk et event-objekt med til en event-funktion, hvis du ikke selv angiver nogen parameter i kaldet (jeg er faktisk lidt usikker på hvad der sker hvis du angiver en parameter - umiddelbart virker det som om det så er den parameter du selv sender med der modtages i funktionen). Det jeg gør ved at specificere evt i parameteren er at fange dette objekt i en variabel (og slipper dermed for at arbejde med arguments-array'et for at få fat i parameteren).

Det jeg opnår med linien:

  var e = (e : e ? window.event);

(som burde se således ud - du har ret i at det er forkert at check på variablen e):

  var e = (evt : evt ? window.event);

er at få fat i event-objektet, hvis browseren er IE (da IE ikke automatisk sender et event-objekt med til en event-funktion, hvis du undlader selv at sende en parameter med til funktionen).
Avatar billede softspot Forsker
29. august 2006 - 23:29 #11
...evt-parameteren vil i tilfælde af en Gecko-browser, som sagt indeholde event-objektet og vil derfor blot blive brugt som det er. Hvis det er IE, hentes det globale event-objekt fra window-objektet.
Avatar billede softspot Forsker
29. august 2006 - 23:31 #12
Koden skal så med rettelsen se således ud:

<script type="text/javascript">
function clickEvent(evt) {
  var e = (evt : evt ? window.event);
  if(typeof e.target != "undefined")
    alert("Mozilla");
  else if(typeof e.srcElement != "undefined")
    alert("IE");
  else
    alert("Ukendt");
}
</script>
<a href="#" onclick="clickEvent()">Klik mig</a>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester