Autor Zpráva
Guest
Profil *
Ahoj,
potřeboval bych pomoc, vím, že je to nejspíš banalita, ale nenapadlo mě, jak to strýčkovi googlovi formulovat, takže se obracím na vás:

Mám tenhle kód:
<body onKeyDown="keyUp(evt);">

<script type="text/javascript"> 
  function keyUp(evt) {
    if(evt.keyCode == 13) {
      alert('stisknul jsi ENTER');
    }
  }
ten funguje, ale já bych to potřeboval udělat tak, abych mohl vynechat to <body>, jelikož pro všechny stránky používám stejnou hlavičku a nechce se mi to tam psát, když to použiju jen na jedné stránce....
Taže bych potřeboval něco jako tohle (to mi bohužel nefunguje)
<script type="text/javascript">
document.onKeyDown= keyUp(evt);      
  function keyUp(evt) {
    if(evt.keyCode == 13) {
      alert('stisknul jsi ENTER');
    }
  }


Díky moc za nápady na řešení :)
ShiraNai7
Profil
Guest:
document.body.onkeydown
Guest
Profil *
:( to mi taky nefunguje, ted to mám takhle, a pořád se mu nějak nechce ... nevíte prosím někdo čím by to mohlo být??

<script type="text/javascript">
document.body.onKeyDown=keyUp(evt);      
  function keyUp(evt) {
    if(evt.keyCode == 13) {
      alert('stisknul jsi ENTER');
    }
  }
 </script>
DJ Miky
Profil
Viz Časté potíže, zajímavosti a poučné debaty » Rozdíl mezi voláním funkce a funkcí. Do onkeydown musíš přiřadit samotnou funkci (keyUp), ne výsledek jejího volání (keyUp(event)).

onkeydown = keyUp(evt); znamená "zavolej funkci keyUp s proměnnou evt (která není definovaná) jako parametrem a návratovou hodnotu přiřaď do onkeydown". A jelikož keyUp nic nevrací (resp. vrací undefined), přiřadí se ti do onkeydown taky undefined.
Guest
Profil *
Jo, takže, pokud jsem to dobře pochopil, tak potřebuju ten 8. řádek:
window.onload = function() { alert("Ahoj."); };  // alert vyskočí až při události onload
takže jsem to upravil přesně podle něj:
<script type="text/javascript">
window.body.onKeyDown=function(){
    if(evt.keyCode == 13) {
      alert('stisknul jsi ENTER');
    }
  }
 </script>

ale steně mi to nefunguje :(
Chamurappi
Profil
Reaguji na Guesta:
Ta vlastnost se jmenuje onkeydown, ne onKeyDown.
A window.body není nic.
Radek9
Profil
Guest:
To onkeydown musí být malými písmeny, JS je case-sensitive. body je na documentu, ne na window. A ještě musíš nějak definovat evt:
document.body.onkeydown = function (evt) {
  if (!evt) { evt = window.event; }
  if (evt.keyCode === 13) {
    alert("Stisknul jsi ENTER.");
  }
};
Edit: Chamurappi: Jistě, mě to v tuhle chvíli nenapadlo. Upraveno.
Chamurappi
Profil
Reaguji na Radka9:
ještě musíš nějak definovat evt
+ ošetřit, že když není evt, tak evt = window.event.
Guest
Profil *
Supr už mi to fungeje, dík, to mě nenapadlo.
Finální podoba:

<script type="text/javascript">
window.onkeydown=function(evt) {     
    if(evt.keyCode == 13) {
      alert('stisknul jsi ENTER');
    }
  }
 </script>
_es
Profil
Guest:
Supr už mi to fungeje
Vo všetkých prehliadačoch? - rada v [#8].

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: