---
title: "Kortkommandon"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/116238-kortkommandon"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Web-Tor"
published: "2004-11-19T10:14:13.000Z"
updated: "2004-11-23T16:02:50.000Z"
replies: 15
views: 638
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/116238-kortkommandon"
---

# Kortkommandon

## #1 — Web-Tor, 2004-11-19T10:14Z

Kan man använda sig av kortkommandon i Javascript på något sätt?
\- Trycker användaren Alt+P på en sidan ska funktionen print() köras.

Eftersom det inte gäller form-element kan jag tyvärr inte använda **accesskey**.

Permalänk: https://www.webforum.nu/p/116238

## #2 — Peter S, 2004-11-19T10:27Z

Sure:

```
document.onkeydown=function(e){
    e=e||window.event;

    if (e.altKey && e.keyCode == 80) print();
}
```

 :)

Permalänk: https://www.webforum.nu/p/1489591

## #3 — Web-Tor, 2004-11-19T13:01Z

Tack!
Du fick in mig på rätt spår jag har har nu fått ihop ett fungerande script. Helst skulle jag vilja ropa på funktionen genom *onkeypress* i stället för *onkeydown* och det ska fungera enligt [MSDN](http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/keycode.asp) men jag får det inte att funka.

```
<html>
<head>
<style type="text/css">
div {border:1px solid #555;background:#ddd;cursor:hand;width:50px;}
</style>
<script type="text/javascript">
function body_onkeydown(){
	key=window.event.keyCode;

	if(window.event.altKey){
		switch(key){
		case 65:
			actionkey('a');
			break;
		case 66:
			actionkey('b');
			break;
		}
	}

	function actionkey(action){
		var div=document.getElementsByTagName('div');
		for(i=0; i < div.length; i++){
			if(div[i].actionkey==action)
				div[i].click()
		}
	}
}
</script>
</head>
<body onkeydown="body_onkeydown();">
	<div onclick="alert('Knapp A');" tabindex="0" actionkey="a">A</div>
	<br>
	<div onclick="alert('Knapp B');" tabindex="0" actionkey="b">B</div>
</body>
<html>
```

Permalänk: https://www.webforum.nu/p/1489650

## #4 — Jesper T, 2004-11-19T13:04Z

onKeyup?

Permalänk: https://www.webforum.nu/p/1489652

## #5 — Web-Tor, 2004-11-19T13:07Z

Nja, som jag skriver så fungerar koden fast jag skulle vilja ändra till till *onkeypress*. ;)
En IE-lösning räcker.

Permalänk: https://www.webforum.nu/p/1489653

## #6 — Peter S, 2004-11-19T13:16Z

Jag tror att det blir svårt att åstadkomma det via onkeypress eftersom Alt-tangenten är associerad med menyraden i IE.

Vad MSDN menar är att *keyCode* är kombinerbar med onkeypress, vilket stämmer. Detta gäller dock ej *altKey* och det är där problemet ligger.

 :)

Permalänk: https://www.webforum.nu/p/1489657

## #7 — Web-Tor, 2004-11-19T13:21Z

Okey, då förstår jag.
Får lära mig att leva med *onkeydown*. ;)
Tack igen!

Permalänk: https://www.webforum.nu/p/1489658

## #8 — Web-Tor, 2004-11-19T14:38Z

Har hittat en liten "bugg" med ovanstående kod. När man trycker Alt-A så dyker även menyn "Favorites" \> "Add to favorites" upp. Någon som kan komma på ett sett att komma runt detta?

Permalänk: https://www.webforum.nu/p/1489697

## #9 — Web-Tor, 2004-11-22T12:58Z

Har jobbat vidare på detta och fångar nu även upp F1-knappen för att öppna en hjälpsidan. Problemet är då att Explorer slänger upp sitt hjälpfönster. Finns det verkligen inte något sätt att stoppa detta?
Break, return false, cancelBubble... jag har testat det mesta.
En IE-lösning räcker.

Permalänk: https://www.webforum.nu/p/1490745

## #10 — Johnsen, 2004-11-22T14:39Z

```
function bapp(){
//öppna din egna hjälp här...
return false;
}

document.onhelp=bapp;
```

Permalänk: https://www.webforum.nu/p/1490778

## #11 — Web-Tor, 2004-11-22T15:00Z

Hej Mr Johnsen!
Det var ju en smidig lösning - fast det funkar ju bara för F1-problemet. Kör jag Alt+A i [det här exemplet](http://www.webforum.nu/showthread.php?s=&postid=954357#post954357) så öppnas ju fortfarande Favorites-menyn. :o

Permalänk: https://www.webforum.nu/p/1490794

## #12 — Johnsen, 2004-11-22T15:27Z

Man kan inte få al(l)t.

```
<div onclick="alert('Knapp A');" tabindex="0" actionkey="a" [b]accesskey="a"[/b]>A</div>
```

Permalänk: https://www.webforum.nu/p/1490810

## #13 — Web-Tor, 2004-11-23T08:01Z

Nja, det där förändrar inte saken. **accesskey** funkar ju inte på en \<div\>-tagg. Hade hoppats på att det fanns nåt liknande **oncontextmenu** fast för toppmenyerna... :l

Permalänk: https://www.webforum.nu/p/1491055

## #14 — Johnsen, 2004-11-23T09:24Z

Jag vet att det känns långsökt, men har du provat följande?

```
<html>
<head>
<style type="text/css">
div {border:1px solid #555;background:#ddd;cursor:hand;width:50px;}
</style>
<script type="text/javascript">
function body_onkeydown(){
	key=window.event.keyCode;

	if(window.event.altKey){
		switch(key){
		case 65:
			actionkey('a');
			break;
		case 66:
			actionkey('b');
			break;
		}
	}

	function actionkey(action){
		var div=document.getElementsByTagName('div');
		for(i=0; i < div.length; i++){
			if(div[i].actionkey==action)
				div[i].click();
		}
	}
}
</script>
</head>
<body onkeydown="body_onkeydown();">
	<div onclick="alert('Knapp A');" tabindex="0" actionkey="a" accesskey="a">A</div>
	<br>
	<div onclick="alert('Knapp B');" tabindex="0" actionkey="b" accesskey="b">B</div>
</body>
<html>
```

Det funkar iaf för mig. (inte så snyggt, men ändå).
Har för mig att jag löste ett liknande problem på ett annat sätt, men jag får lov att återkomma med det

Permalänk: https://www.webforum.nu/p/1491094

## #15 — Web-Tor, 2004-11-23T09:32Z

Ah! :i
Det funkade ju och jag kom på ett sätt att slippa sätta ut *accesskey* på varje \<div\>-tagg.

```
function actionkey(action){
	var div=document.getElementsByTagName('div');
	for(i=0; i < div.length; i++){
		if(div[i].actionkey==action){
			[b]div[i].accessKey=action;[/b]
			div[i].click();
		}
	}
}
```

> **Johnsen skrev:**
>
> Har för mig att jag löste ett liknande problem på ett annat sätt, men jag får lov att återkomma med det

Ja, gör gärna det. :)

Permalänk: https://www.webforum.nu/p/1491097

## #16 — Johnsen, 2004-11-23T16:02Z

Det var nog så här:

```
<html>
<head>
<style type="text/css">
div {border:1px solid #555;background:#ddd;cursor:hand;width:50px;}
</style>

<script>
function doIt(){
	alert(event.srcElement.innerHTML)
	event.srcElement.blur();
}
</script>

</head>
<body>
	<div onfocus="doIt()" accesskey="a">A</div>
	<br>
	<div onfocus="doIt()" accesskey="b">B</div>
</body>
<html>
```

Permalänk: https://www.webforum.nu/p/1491324

---

Tråden på webben: https://www.webforum.nu/amne/javascript/116238-kortkommandon
