Autor Zpráva
Frantisekx
Profil *
Ahoj,

u body mam definovanou událost onKeyPress="alert('press='+event.keyCode);". Vše funguje fajn, pokud před tím na stránku kliknu, nebo označím nějaký text. Existuje ale nějaký způsob, jak zajistit, aby se tento kód provedl bez předchozího kliknutí na stránku?

Dik
Trey
Profil *
Zkus si pohrát s focus třeba dej nějakému objektu(třeba neviditelnému) onload="this.focus" to by mělo mít stejný efekt jako kdyby si kliknul
peta
Profil
Frantisekx
predevsim bys mel pouzivat univerzalni funkci a ne takovou, co funguje jen nekde.

document.onkeydown = klavesa;
//document.onkeypress = klavesa;
function klavesa(e)
{var k;
if (!e) {var e=window.event;}
k=e.charCode?e.charCode:e.keyCode?e.keyCode:e.which; //Moz,IE,NN
alert(k);
}

"Existuje ale nějaký způsob, jak zajistit, aby se tento kód provedl bez předchozího kliknutí na stránku?"
Si predstavujes jak? Jak chces zobrazit efekt, ktery zatim nenastal? Tj, zmacknuti klavesy, kdyz pamet zmacknutych klaves je prazdna? tim padem zobrazit kod klavesy, ktera neexistuje serovna zobrazit nic.

Jinak
<body onload="neco">

nebo

<head>
<script>
window.onkeypress=funkce; //treba klavesa
</script>
</head>
<body>
</body>
Cili definovat to v hlacicce na objekt window (a ten nemusis uvadet, takze staci jen onkeypress=funkce;)

Trey
To zrovna moc nechapu, co tim focusem chces docilit? Kazdopadne metoda focus nemusi existovat a pak se ti zastavi cely script na chybe.
Bubák
Profil
To zrovna moc nechapu, co tim focusem chces docilit?
Přece obejít nutnost kliknutí.
Spousta vyhledávačů používá fokus do vyhledávacího políčka, dělá to tak třeba seznam (pokud honemáš v Cache, tak to chvíli trvá ;-)))
Jak se to dělá, se tu párkrát řešilo, zkus pohledat (focus, formulář)
peta
Profil
Bubák
Ok, ale v tom pripade by to chtelo uvest cely priklad.
Kdo vi, jak to myslel Trey a jak to souvisi s keypress?
A kdo vi, co tam ma Frantisekx a kde to keypress ma. Treba to ma na celem window, pak to focus ale naprosto nic neresi.
Jako, focus pouzivam take, prevazne na login.
Toto téma je uzamčeno. Odpověď nelze zaslat.