Avatar billede angelod Novice
14. april 2004 - 14:59 Der er 7 kommentarer og
1 løsning

Forhindre at handling eksekveres ved Ctrl+F i IE.

Jeg oprettede dette spørgsmål tidligere, i en anden kategori. Der er gået over en uge, og jeg har lukket det andet spørgsmål. Håber på bedre held i denne kategori.


Nu har jeg siddet og bakset med det her i nogen tid.. Det generer mig, at skal jeg handle på Ctrl+EtBogstav kombinationer, så virker det for det meste fint, med undtagelse af visse kombinationer. Den eneste kombination der er lige nu, er Ctrl+F, som jeg skal bruge til at lave Fed skrift med. Det kan den også godt, men jeg kan tilsyneladende ikke blokere for den videre behandling af den pågældende event.

Jeg forsøgte mig først med onKeyPress, men her kommer den ikke engang frem til funktionen, så jeg ændrede det til en onKeyDown, hvilket virker, men jeg har prøvet at sætte "event.cancelBubble = true", samt "event.returnValue = false". Det hjælper bare ikke noget som helst.

Det behøver kun at virke i IE, så jeg håber nogle har et godt og hurtigt svar.
Avatar billede roenving Novice
14. april 2004 - 20:04 #1
Jeg har ikke kigget nærmere på det, men generelt kan man jo sige, at windows sender eventen til browseren og først derefter rammer den jo dine js-events ...

Hvad med at prøve:

"event.cancelBubble = true;return false;",
Avatar billede angelod Novice
14. april 2004 - 21:12 #2
Prøver det lige. :)
Avatar billede angelod Novice
14. april 2004 - 21:20 #3
Okay.. Det virkede ikke.. Min kode ser ud som følger:

if (event.ctrlKey) {
  // Buttons using the Control button
  event.returnValue = false;
  event.cancelBubble = true;
 
  iKeyCode = event.keyCode;
 
  if (iKeyCode == 70) {
    dssDoSwitchBold();
  } else if (iKeyCode == 75) {
    dssDoSwitchItalic();
  } else if (iKeyCode == 85) {
    dssDoSwitchUnderline();
  } else if (iKeyCode == 76) {
    dssDoSwitchUList();
  } else if (iKeyCode == 78) {
    dssDoSwitchOList();
  } else {
    event.returnValue = true;
    event.cancelBubble = false;
    return true;
  }
 
  return false;
}
Avatar billede roenving Novice
14. april 2004 - 21:46 #4
-- og jeg blev da umiddelbart lidt overrasket over, at det var det problem, du havde, at den smider f'et uanset hvilken return-value ...

Hrm, så har jeg ikke umiddelbart andre ideer, men man kan lave lidt lettere overskuelig kode:

  switch(event.keyCode){
    case 70:
      dssDoSwitchBold();
      break;
    case 75:
      dssDoSwitchItalic();
      break;
    case 76:
      dssDoSwitchUList();
      break;
    case 78:
      dssDoSwitchOList();
      break;
    case 85:
      dssDoSwitchUnderline();
      break;
    default:
      event.returnValue = true;
      event.cancelBubble = false;
      return true;
  }
Avatar billede olebole Juniormester
15. april 2004 - 22:46 #5
<ole>

Det burde ikke volde problemer. Prøv dette eksempel:

<script type="text/JavaScript">
function bla() {
    var cK = event.ctrlKey;
    var kC = event.keyCode;
    var stopEvent = false;
    if (cK && kC==85) { // Ctrl+U
        alert("Underline");
        stopEvent = true;
    }
    if (cK && kC==66) { // Ctrl+B
        alert("Bold");
        stopEvent = true;
    }
    if (cK && kC==70) { // Ctrl+F
        alert("Fed");
        stopEvent = true;
    }
    if (stopEvent) {
        event.keyCode = 0;
        event.cancelBubble = true;
        event.returnValue = false;
    }
}
</script>

<div onkeydown="bla()" contenteditable style="width:300px;height:150px;border:1px solid red"></div>

/mvh
</bole>
Avatar billede angelod Novice
28. juni 2004 - 20:21 #6
Åh undskyld, olebole. Jeg havde slet ikke set at du havde smidt et svar. Jeg afprøvede det lige, og det var blot "event.keyCode" jeg manglede for at få det til at virke. Så hvis du lige smider et svar, så får du dine point. :)
Avatar billede olebole Juniormester
29. juni 2004 - 12:37 #7
... svar  ;o)
Avatar billede olebole Juniormester
29. juni 2004 - 12:38 #8
oooops  :D
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

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging