Avatar billede saxtus Nybegynder
03. september 2003 - 17:09 Der er 8 kommentarer og
1 løsning

"F" taster og javascript

Kan man tildele "F" tasterne nogen funktion ved hjælp af Javascript. Hvis ja hvordan
Jeg vil gerne lave det sådan at man trykker på en "F" tast og der så kommer evt et login felt frem til en admin del.
Avatar billede edutasia Nybegynder
03. september 2003 - 19:32 #1
Prøv denne her:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Tast F3 for at logge på</TITLE>
<SCRIPT>
function checkKeys() {
    var kCode = event.keyCode;
    if (kCode == 114) toggleLogon();
}

function toggleLogon() {
    var elm = document.logonForm;
    elm.style.display = (elm.style.display == 'none') ? '' : 'none';
}
</SCRIPT>
</HEAD>

<BODY onkeydown="checkKeys()">
<h1>Tast F3 for at logge på</h1>
<form name="logonForm" style="margin:0px; position:absolute; left:10px; top:10px; display:none">
<table style="border:2px outset white; background:silver; filter:alpha(opacity=90)">
<tr><td colspan=2>LOGON</td></tr>
<tr><td>Brugernavn:</td><td><input size=20></td></tr>
<tr><td>Kode:</td><td><input type=password size=20></td></tr>
<tr><td>&nbsp;</td><td><input type=submit value="    OK    ">&nbsp;<input type=button onclick="toggleLogon()" value="Annuller"></td></tr>
</table>
</form>
</BODY>
</HTML>
Avatar billede saxtus Nybegynder
03. september 2003 - 19:36 #2
Det ser jo vildt godt ud.
Hvordan kan jeg så få den til at åbne en anden side i stedet??
Avatar billede edutasia Nybegynder
03. september 2003 - 19:41 #3
Hov - kom lige til at se, at F3 er et skidt valg, da den aktiverer søgefunktionen i MSIE. Lav evt. linien:

  if (kCode == 114) toggleLogon();

om til:

  if (kCode == 113) toggleLogon(); // F2

F1, F3, F4 og F5 er alle sammen "optaget" af MSIE. Normalt skulle man vist nok kunne sætte event.returnValue = false for at undgå, at tastetrykket sendes videre til browseren, men jeg kan ikke lige få det til at virke...
Avatar billede edutasia Nybegynder
03. september 2003 - 19:44 #4
Du kan blot lave funktionen toggleLogon om, så den enten skifter side:

function toggleLogon() {
  location.replace('navn_paa_side.htm');
}

eller åbner et nyt vindue:

function toggleLogon() {
  window.open('navn_paa_side.htm','logonWin','width=400,height=300').focus();
}
Avatar billede edutasia Nybegynder
03. september 2003 - 19:55 #5
... og hvis det også skal virke i andet end MSIE, skal du, så vidt jeg ved, blot lave funktionen checkKeys om til:

function checkKeys(e) {
    var kCode = (event.keyCode) ? event.keyCode : e.which;
    if (kCode == 113) toggleLogon(); // F2
}

Jeg har dog ikke testet, da jeg ikke lige har andre browsere ved hånden... :)
Avatar billede saxtus Nybegynder
03. september 2003 - 21:55 #6
Ved du forresten hvor man kan finde en liste over hvilke tilværdier de forskellige taster har?? også evt med "Ctrl" og "Alt"
Avatar billede edutasia Nybegynder
03. september 2003 - 22:06 #7
Jeg ved ikke lige, hvor der er en liste, men du kan sætte

  alert(kCode);

ind i funktionen checkKeys. Så kommer der en dialogboks med talværdien, hver gang du taster noget.
Avatar billede saxtus Nybegynder
03. september 2003 - 22:17 #8
skal man oprette en funktion for hver knap der skal virke eller kan man lave en samlet funktion over alle de kanpper man vil bruge??
Avatar billede edutasia Nybegynder
04. september 2003 - 08:21 #9
I funktionen checkKeys skal du indsætte alle de taster, der skal bruges:

function checkKeys(e) {
    var kCode = event.keyCode;
    if (kCode == 113) toggleLogon(); // F2
    else if (kCode == 69 && event.ctrlKey) alert('Du tastede Ctrl + E');
    else if (kCode == 118 && event.shiftKey) alert('Du tastede Shift + F7');
}

event.shiftKey og event.ctrlKey og event.altKey er i øvrigt gode at kende - de checker, om Shift, Ctrl eller Alt holdes nede samtidigt med den tast, der er trykket på. Jeg tror dog ikke de virker i andet end MSIE.
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