Autor Zpráva
suvel
Profil
Po stisknutí klávesy (v tomto případě F5) potřebuju, aby se načetla nová stránka:

<script>
function klavesa(e) {
  alert(e.keyCode);
  if(e.keyCode == 116) windows.location.href='./nova.php';
}
 
window.addEventListener("keydown", klavesa, false);
</script>

Odchyt klávesy funguje, ale nenačte se nic. Proč?
lionel messi
Profil
suvel:
Odchyt klávesy funguje, ale nenačte se nic. Proč?

if(e.keyCode == 116) window.location.href='./nova.php'; //namiesto windows

PS: Celkom dobrým zvykom býva uzatvárať blok podmienky do zložených zátvoriek, aj keď je tvorený len jedným príkazom.
suvel
Profil
Jsem blbej, už je pozdě. Ale ani tak to nefunguje.

<script>
function klavesa(e) {
  alert(e.keyCode);
  if(e.keyCode == 116) {window.location.href='./nova.php';} 
}
 
window.addEventListener("keydown", klavesa, false);
</script>
Radek9
Profil
suvel:
Mně to v Chromu funguje, ale je možné, že keydown na window nefunguje všude. Zkus ten event hodit na document.
suvel
Profil
Stačilo místo keydown dát keyup. To je blázinec.
_es
Profil
suvel:
Možno vadilo volanie funkcie alert. A asi treba explicitne zrušiť východziu úlohu F5:
window.onkeydown = function(e){...;return false};
suvel
Profil
Tak už jsem na to přišel. Stejně funkční je keyup i keydown, ale zlobí to s funkčními klávesami. Asi se to tluče s funkcemi, které k nim má přiřazený ten který prohlížeč.
_es
Profil
suvel:
Asi se to tluče s funkcemi, které k nim má přiřazený ten který prohlížeč.
Áno, treba to východzie chovanie zrušiť, viď doplnené [#6]. Vrátiť však false len pre tie klávesy, kde sa má zrušiť.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: