Kan man på något sätt få en sida att utföra något när man trycker en tangentkombination? T.ex. så vill jag kunna säga att om användaren trycker "Ctrl-F1" så ska webläsaren ladda en annan url i det fönstret.
Ctrl-F1
7 svar · 534 visningar · startad av stephan
Det korta svaret är att det inte går. Det långa svaret är att det går, men att IE buggar lite och öppnar ett hjälpfönster. Om du kan leva med att byta ut F1 mot F2 eller Ctrl mot Alt så funkar det perfekt.
Alt+F1:
<script type="text/javascript">
document.onkeydown=function(){
var ev=window.event||arguments[0];
if(ev.altKey && ev.keyCode==112){
window.open("http://www.myspace.com/nitro2k01", "_self");
return false;
}
}
</script>
Ctrl+F2:
<script type="text/javascript">
document.onkeydown=function(){
var ev=window.event||arguments[0];
if(ev.ctrlKey && ev.keyCode==113){
window.open("http://www.myspace.com/nitro2k01", "_self");
return false;
}
}
</script>
alt går bra också, och detta funkar ju klockrent :)
Hmm. Kommer ha flera snabbkommandon, så jag täntke lägga ut dem på alt-F1 till alt-F8, men så upptäckte jag ju att alt-F4 stänger fönstret i IE. SÅ jag får någ lägga snabbkomandona på alt-1 till alt-8 istället. Hur tar jag reda på vad de tangenterna har för "nummer"?
Kommer detta funka på mac också, elle rhar tangenterna andra sifferkoder där?
<a href="http://www.myspace.com/nitro2k01" accesskey="1">test</a>
Vilken tangentkombination som aktiverar länken beror på webbläsaren; i IE är det ALT+1 och sen Enter, i Firefox ALT+1, i Opera SHIFT+ESC och sen 1. (Man kan också ställa in om man vill ha andra teckenkombinationer eller inaktivera funktionen helt.)
zcorpan skrev:
<a href="http://www.myspace.com/nitro2k01" accesskey="1">test</a>Vilken tangentkombination som aktiverar länken beror på webbläsaren; i IE är det ALT+1 och sen Enter, i Firefox ALT+1, i Opera SHIFT+ESC och sen 1. (Man kan också ställa in om man vill ha andra teckenkombinationer eller inaktivera funktionen helt.)
Om man nu verkligen vill att besökaren ska skickas vidare när man trycker Alt+tangent så kan man antingen använda onkeydown med lämplig keyCode, eller accesskey. Spm zcorpan säger så skiljer sig beteendet lite åt mellan browser, men även det har jag ett svar på. Kolla min kommentar på denna blog-post: http://www.schmidetzki.net/WebGatePublisher/schmidetzki/html/default/5597c8a408f6570001091d468ab308a0.de.html#comments
Här är koden.
<html>
<head>
<script type="text/javascript">
if (document.all && !window.opera) // If we're really on IE...
window.attachEvent("onload", function(){ // Attach this function
//(attachEvent is ok since code will only ever be run on IE)
for (var i=0; i<document.links.length; i++){ // Check every link
if (document.links[i].accessKey) // Does it have an accesskey?
document.links[i].onfocus=function(){
if(event.altKey)/* If alt was held the user probably
pressed an access key...*/
window.open(this.href, this.target?this.target:"_self");
// Simulate link click
}
}
});
</script>
</head>
<body>
You need some text here, 'cause the link can't
be the first thing following body!
<a href="http://www.google.com" accesskey="g" >Google (Alt+g)</a>
</body>
</html>
Du skall alltså lägga script-taggen i head på varje sida, alt. lägga koden i en js-fil och inkludera.
nitro2k01 skrev:
Spm zcorpan säger så skiljer sig beteendet lite åt mellan browser, men även det har jag ett svar på.
Jag ser inte det som ett problem... Om användaren vet hur man aktiverar accesskeys med sin webbläsare behöver man inte ändra på det. Jag skulle föreslå antingen endast javascript eller endast accesskey="".