Autor Zpráva
inocencz
Profil
Dobrý den. Javascript neumím ale zajímá mě zda lze pomocí něj udělat tohle: potřeboval bych aby kdykoli bude někdo na jedné stránce aby byl jeden formulář (jediný na celé stránce) ve focusu tzn. aby když někdo začne psát, vždy psal do toho formuláře a kdyby kliknul jinam do stránky aby formulář zůstal ve focusu.
los
Profil *
Áno, dá sa to veľmi jednoducho. Otázkou je, či to naozaj chceš. Ak napríklad niekto začne skrolovať stránku pomocou klávesnice, tak sa mu zaktívni pole formuláru a stránka naskroluje tak, aby to pole bolo viditeľné. To by nebolo príliš user-friendly...
inocencz
Profil
ne-e -> neboj - tyhle věci samozřejmě chápu ale tahle stránka by měla být trošičku jiná proto by měla většina standardních problémů odpadnout > měla by vypadat nějak jako příkazový řádek. Je snad jasné proč potřebuji mít vždy aktivní input (krom toho že bude asi nabarven tak aby nebyl vidět)
inocencz
Profil
Díky za odpověď > jak na to už asi zjistím sám - jen jsem chtěl vědět jestli to jde abych nehledal zbytečně ;)
los
Profil *
document.onkeydown = function ()

{
var el = document.getElementById (id_prvku_ktory_ma__byt_aktivny);

if (el)
el.focus ();
}
llook
Profil
<input type="text" id="PrikazovyRadek" onblur="this.focus();">
<script>
document.getElementById("PrikazovyRadek").focus();
</script>
los
Profil *
llook
Vo FF to nič nerobí a v IE a Opere sa potom nedá ani zapísať niečo do adresného riadka :)
inocencz
Profil
Zkoušel jsem to a výsledek je: los-ův script funguje téměř bezchybně v Mozille a Opeře (při načtení stránky není zřejmé že je fomulář ve focusu jelikož v něm do doby než něco začnete psát nebliká pointer). V IE je problém, že jakmile máte ve formuláři text a kliknete někam do stránky stane se text ve formuláři "pozadím inputu" a nereaguje !!UPDATE!! reaguje - jen se kurzor přesune na začátek)

llook-ovo řešení nemá s poineterm problém ale v Mozille při kliknutí do stránky ztratí input focus.

Každopádně vám oběma mnohokrát děkuji za pomoc - ono to určitě půjde nějak vypilovat.

PS: ten problém s přesouváním pointeru při kliknutí do stránky má i llool-ovo řešení - asi to bude nějaký vrtoch IE a osobně mi to nevadí - každý vidí že se kurzor přesunul a může ho dát zas na konec.
los
Profil *
function focusText ()

{
var el = document.getElementById ("text");

if (el)
{
el.focus ();
el.value = el.value; // presunie v IE kurzor na koniec vstupu
}
}

document.onkeydown = focusText; // nastavi focus ked zacne pisat do dokumentu
document.onclick = focusText; // nastavi focus po kliknuti mysou v dokumente
window.onload = focusText; // nastavi focus po nahrati stranky
inocencz
Profil
To už funguje všude správně - díky moc.
los
Profil *
Ešte som odhalil jednu chybu - v IE sa nedá písať inde ako na koniec toho inputu, takže by tá funkcia focusText mala vyzerať nejako takto:

function focusText (e)

{
e = e || window.event;
var target = e.target || e.srcElement;
var el = document.getElementById ("text");

if (el && el != target)
{
el.focus ();
el.value = el.value; // presunie v IE kurzor na koniec vstupu
}
}
Toto téma je uzamčeno. Odpověď nelze zaslat.