/ 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
JScript og accesskeys
Fra : Thomas Due


Dato : 29-09-03 12:14

Hej,

Jeg sidder og undersøger muligheder i forbindelse med et fremtidigt
asp.net produkt. I den sammenhæng sidder vi og overvejr hvordan man
laver access-keys, eller shortcut-keys.

Jeg ved det er muligt at tildele en access-key til et element, f.eks.
'A', elementet aktiveres så med ALT+A.

Mit spørgsmål er så om det er muligt at lave en anden form for
access-key, f.eks. ALT+F1, eller ctrl+shift+Q. I så fald hvordan gør
man det?

Jeg har en kraftig mistanke om at hvis det kan gøres, så skal det
foregå med Javascript.

Den platform vi sigter imod er IE 5.5/6. Selvfølgelig med javascript
slået til.

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S

 
 
Lasse Reichstein Nie~ (29-09-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 29-09-03 13:47

"Thomas Due" <t.due@scanvaegt_REMOVE.dk> writes:

> Jeg sidder og undersøger muligheder i forbindelse med et fremtidigt
> asp.net produkt. I den sammenhæng sidder vi og overvejr hvordan man
> laver access-keys, eller shortcut-keys.

Den almindelige metode er med HTML.
<URL:http://www.w3.org/TR/html4/interact/forms.html#h-17.11.2>

> Jeg ved det er muligt at tildele en access-key til et element, f.eks.
> 'A', elementet aktiveres så med ALT+A.

Det afhænger så af browseren. Opera aktiverer access-key'en med
Alt-ESC A (for at undgå konflikt med shortcut keys til browseren selv).

> Mit spørgsmål er så om det er muligt at lave en anden form for
> access-key, f.eks. ALT+F1, eller ctrl+shift+Q. I så fald hvordan gør
> man det?

Så skal man selv lave koden til det. Browseren hjælper ikke.

> Jeg har en kraftig mistanke om at hvis det kan gøres, så skal det
> foregå med Javascript.

Det lyder rigtigt. Man kan stadig løbe ind i at browseren selv fanger
trykket.

> Den platform vi sigter imod er IE 5.5/6. Selvfølgelig med javascript
> slået til.

Lav det dog så det virker i flere browsere.

Her er et eksempel:
---
<script type="text/javascript">
function init(){
// element key ctrl alt
var keys = [["input1","Z",true,false],
["input2","X",true,false],
["input3","C",false,true]];
function keyPress(event) {
var keyCode = event.keyCode || event.charCode || event.which;
var key = String.fromCharCode(keyCode).toUpperCase();
for (var i in keys) {
if (keys[i][1]==key &&
keys[i][2]===event.ctrlKey &&
keys[i][3]===event.altKey) {
var elem = document.getElementById(keys[i][0]);
if (!elem) {return;} // Fix your page!

if (elem.focus) {elem.focus();}
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
}
}

if (document.addEventListener) {
document.addEventListener("keydown",keyPress,false);
} else if (document.attachEvent) {
document.attachEvent("onkeydown",
function (event) {
return keyPress.call(document,event || window.event);});
} else {
document.onkeypress = keyPress;
}
}
</script>
---
med tilhørende kode
---
<body onload="init()">
<p><input id="input1"><input id="input2"><a href="" id="input3">Reload</a></p>
</body>
---
This works in IE6 and Mozilla (but only because Ctrl-X and Ctrl-Z weren't
used for anything else). It almost works in Opera 7, except that Alt-C is
taken.

/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.'

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste