Avatar billede skg Nybegynder
19. april 2001 - 01:23 Der er 9 kommentarer og
1 løsning

Cancel Events....

Kan man få lov at overskrive de events der sker når man prøver at trykke f.eks ctrl+r eller ctrl+c i en af de der fine browsere ?
Avatar billede jumper Nybegynder
19. april 2001 - 01:28 #1
Yeps, det kan du gøre på flere måder. Events der indsætter/kopierer tekst, som Ctrl+C, har sine egne events, nemlig oncopy, onpaste, osv. Dem kan du læse mere om på

http://msdn.microsoft.com/workshop/author/dhtml/reference/events.asp#om40_event

Ellers gælder det generelt at alle tastekombinationer (bortset fra nogle få system-ting som Alt+F4) kan annulleres ved at sætte event.keyCode til 0, event.cancelBubble til true og return false. Hvis vi tager eksemplet med Ctrl+R:

function CheckKeys(){
  with (event){
    if (ctrlKey && keyCode==82){ // Ctrl+R
      // Her skriver du evt. noget andet
      // kode der skal udføres

      // Annuller
      keyCode = 0;
      cancelBubble = true;
      return false;
    }
  }
}

document.onkeydown = CheckKeys;

/Thor
Avatar billede skg Nybegynder
19. april 2001 - 01:53 #2
Javel...

men ved du om kan man gøre det samme i den DHTML Edit Component der findes i IE ? (http://msdn.microsoft.com/workshop/author/dhtml/edit/default.asp)

Avatar billede jumper Nybegynder
19. april 2001 - 01:55 #3
Javist, det kan også lade sig gøre, endda på samme måde ;)

/Thor
Avatar billede skg Nybegynder
19. april 2001 - 02:09 #4
ok, det synes jeg bare ikke jeg kan få den til !

Jeg vil gerne disable ctrl+l (indsæt/ret link)

lidt kode:
---

<script for=\"denDerEditor\" event=\"onKeyDown\">
with (denDerEditor.DOM.parentWindow.event){
  if (ctrlKey && keyCode==76) {
    alert(\'nix\');
    keyCode = 0;
    cancelBubble = true;
    return false;
  }
}
</script>

---

hverken onKeydown eller onKeyPress ser ud til at have nogen effekt :-(
Avatar billede jakoba Nybegynder
19. april 2001 - 07:30 #5
den der kommando:
<script for=\"denDerEditor\" event=\"onKeyDown\">
er også temmelig underlig, og sandsynligvis ulovlig.

hvad med at prøve at kopiere det Jumper skrev uden at ændre andet end keycode nummeret?
Avatar billede skg Nybegynder
19. april 2001 - 09:42 #6
nej...

<script for=\"denDerEditor\" event=\"onKeyDown\">


svarer til at man \"fanger\" en event:

denDerEditor.onKeyDown = udFoerDenHerFunction;

Det kan IE sagtens finde ud af, og jeg får også fat på de events jeg udfører MEN jeg kan ikke få lov at disable ctrl+l



Avatar billede nute Nybegynder
19. april 2001 - 10:40 #7
dette er relativt IE spesifikt...
Avatar billede skg Nybegynder
19. april 2001 - 13:08 #8
det er den ActiveX component jeg bruger faktisk også ...
Avatar billede jumper Nybegynder
19. april 2001 - 16:22 #9
skg, du spurgte hvordan du kunne annullere tastetryk i browseren, og jeg gav dig svaret. Så spørger du om det også virker med DHTML Editing Component, og det gør det også ... men du glemmer helt at fortælle at det er ActiveX udgaven af DHTML Editing Component som du bruger ! ActiveX komponenter er særskilte programmer, og har dybest set intet med browseren at gøre.

/Thor
Avatar billede skg Nybegynder
19. april 2001 - 17:17 #10
sandt, Jumper...

point til dig
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