Autor | Zpráva | ||
---|---|---|---|
vlczak Profil * |
#1 · Zasláno: 28. 9. 2005, 14:59:55
Nevíte někdo, jak nastavit, aby mi po načtení stránky blikal kurzor ve formu do kterýho se má vložit text? Jde mi o to, aby se tam na to nejdřív nemuselo klikat myší, nebo přejíždět tabulátorem..
|
||
habendorf Profil |
#2 · Zasláno: 28. 9. 2005, 15:01:10 · Upravil/a: habendorf
Klíčová slova jsou JS, focus, onload.
|
||
vlczak Profil * |
#3 · Zasláno: 28. 9. 2005, 15:45:31
ani jedno z toho není ono..
|
||
centi Profil |
#4 · Zasláno: 28. 9. 2005, 15:48:28
vlczak
Ale ano. A vsetky tri. |
||
habendorf Profil |
#5 · Zasláno: 28. 9. 2005, 16:04:56
<body onload="document.getElementById('nevolte-socany').focus()">
<form> <input id="nevolte-socany" type="text" value=""> </form> </body> |
||
peta Profil * |
#6 · Zasláno: 28. 9. 2005, 23:28:57
habendorf
neslo by to treba pres <input type="text" value="" onload="this.focus()"> ? |
||
Dero Profil |
#7 · Zasláno: 28. 9. 2005, 23:35:19
peta: IMHO se na input událost onload neaplikuje.
AFAIK onload funguje pouze u body + img (a samozřejmě objekty, tedy embed, object, iframe...). |
||
habendorf Profil |
#8 · Zasláno: 28. 9. 2005, 23:38:25
Nešlo. Událost onload na inputu nenastává.
|
||
habendorf Profil |
#9 · Zasláno: 28. 9. 2005, 23:41:39
Tak zase pozdě :o)
Je to přesně jak říká Dero. Funguje ještě (asi) na frame. A nebo jiná možnost je přes window.onload. |
||
Dero Profil |
#10 · Zasláno: 28. 9. 2005, 23:46:55
habendorf: Omlouvám se, že Ti lezu do zelí. :o)
Jen doplním, že alespoň v HTML 4.0 funguje už jen pouze pro FRAMESET, pro FRAME by neměla. |
||
Chamurappi Profil |
#11 · Zasláno: 29. 9. 2005, 07:12:59 · Upravil/a: Chamurappi
Reaguji na Dera:
„v HTML 4.0 funguje už jen“ Předchozí verze HTML neobsahovaly handlery událostí vůbec. Událost onload funguje v trojici nejrozšířenějších prohlížečů mimo <body> a <frameset>u i na elementech <img> a <input type="image">. V Mozille a Opeře navíc i na <object>u. Reaguji na habendorfa: Tak zrovna na elementu <frame> nefunguje v ničem. Zajimavé. Efektivnější, než nastavovat focus až při onload události, je nastavit ho uvnitř elementu <script> položeného níže v kódu. V HTML lze spolehlivě přistupovat k DOMu za běhu, není nutné čekat s vyhodnocením na dotažení celé stránky (jako tomu je v XHTML). Událost onload má navíc i tu nevýhodu, že čeká i na stažení všech obrázků. |
||
Leo Profil |
#12 · Zasláno: 29. 9. 2005, 10:22:53 · Upravil/a: Leo
A vubec nejlepsi je necpat ovladace udalosti do HTML jako atributy, ale navesit je primo v tom (externim) JS. Mate pak o starost min, co se tyka validatoru.
Jinak co se tyka nastavovani focusu, specialne az na onload - rada stranek me timhle stve, protoze mam uz natazeny kus stranky, zacnu vyplnovat formular a najednou mi preskoci kurzor. Zabit. Leo |
||
habendorf Profil |
#13 · Zasláno: 29. 9. 2005, 10:49:57
Chamurappi, Leo: Máte oba pravdu (Chamurapi - co se týče toho framu, napsal jsem "asi", sám jsem si nebyl jist), přesto pár poznámek:
1) Taky nemám rád nastavování focusu, ale když to vlczak chce, tak mu to napíšu a může být spokojen. Když někdo chce jezdící text, je mu celkem k prdu deset reakcí typu "kašli na to", radost bude mít teprve až mu někdo napíše marquee. 2) Vzhledem k dotazu nepředpokládám u tazatele zrovna excelentní znalost JS. Takže začít vysvětlovat, jak přilinkovat externí JS atd. atd. mi připadá trochu složité oproti tomuto nejjednoduššímu (byť ne ideálnímu) řešení. Tož asi tak. |
||
Leo Profil |
#14 · Zasláno: 29. 9. 2005, 11:29:10
A to ja nedam na to, co si lidi mysli, ze chcou, ale snazim se z nich vydolovat co chcou doopravdy a proc. Protoze zacatecnik nema vetsinou poneti o alternativach a souvislostech. Jiny kraj, jiny pristup. Leo
|
||
Časová prodleva: 6 dní
|
|||
vlczak Profil * |
#15 · Zasláno: 5. 10. 2005, 23:11:34
Přesně tak habendorfe. Jsem začátečník a JS je na mě moc složitý, prot jsem si nechal na nějakých stránkách vygenerovat heslo (viz níže) Celá stránka vypadá asi takhle:
<body onload="document.getElementById('password').focus()"> <script> var pass=new Array() var t3="" var lim=5 pass[0]="" pass[1]="" pass[2]="" pass[3]="" pass[4]="" pass[5]="" //configure extension to reflect the extension type of the target web page (ie: .htm or .html) var extension=".html" var enablelocking=0 var numletter="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ" var temp3='' var cur=0 function max(which){ return (pass[Math.ceil(which)+(3&15)].substring(0,1)) } function testit(input){ temp=numletter.indexOf(input) var temp2=temp^parseInt(pass[phase1-1+(1|3)].substring(0,2)) temp2=numletter.substring(temp2,temp2+1) return (temp2) } function submitentry(){ t3='' verification=document.password1.password2.value phase1=Math.ceil(Math.random())-6+(2<<2) var indicate=true for (i=(1&2);i<window.max(Math.LOG10E);i++) t3+=testit(verification.charAt(i)) for (i=(1&2);i<lim;i++){ if (t3.charAt(i)!=pass[phase1+Math.round(Math.sin(Math.PI/2)-1)].charAt(i )) indicate=false } if (verification.length!=window.max(Math.LOG10E)) indicate=false if (indicate) window.location=verification+extension else alert("Invalid password. Please try again") } </script> <table align="center" border="1" cellspacing="0" cellpadding="0" bgcolor="#FFFFBD"> <tr> <td width="100%"><form name="password1"><div align="center"><center><p><strong>Heslo: </strong> <input id="password" type="password" value="" name="password2" size="15"><br> <input type="button" value="Odeslat" onClick="submitentry()"></p> </center></div> </form> </td> </tr> </table> </body> Chyba by neměla být v JS, ale ve Formu. Do toho generovanýho kódu jsem ještě dopisoval type="password" a focus().. Jde mi o to, aby když načtu stránku mi blikal kurzor v poli pro vyplnění hesla a aby se heslo dalo odeslat enterem a nikoliv, jako ted jen tlacitkem. Tuším, že nějaký chyby, ale cokoliv pozměním, tak je to pořád stejný, ne-li horší, tak to mám zatím splácaný takhle.. dík za radu.. |
||
Chamurappi Profil |
#16 · Zasláno: 6. 10. 2005, 02:45:34
Reaguji na vlczaka:
Ten focus() je lepší zavolat hned, jak bude element password k dispozici. Pak tam nemusíš mít ani počáteční značku <body>. Hned za element <input type="password"> přidej <script>document.getElementById("password").focus()</script> Máš-li na stránce i nějaké obrázky, mělo by to fungovat rychleji než při čekání na událost onload. Odeslání klávesou enter je přirozená vlastnost každého formuláře s odesílacím tlačítkem. Takové tlačítko tam však ty nemáš. Nahraď type="button" za type="submit". |
||
Fred Profil |
#17 · Zasláno: 6. 10. 2005, 07:02:53 · Upravil/a: Fred
OT: vůbec nechápu k čemu tam jako zakódováváš ten název stránky, není to trochu k ničemu? Místo celýho toho scriptu by stačilo
<input type="button" value="Odeslat" onclick="document.location.href=document.getElementById('password').va lue+'.html'"> |
||
Pavla Profil * |
#18 · Zasláno: 7. 10. 2005, 08:19:04
A lze nastavit focus na řádek tabulky? Mám dlouhý tabulkový výpis v divu s overflow:auto a když kliknu někde na spodní řádek který mě přesměruje na další stránku a pak dám zpět(mnou definované, ne v browseru), tak chci ať je aktivní ten řádek na který jsem klikla. Obarvit to umím, ale pozice se mi nějak nedaří. Děkuji P.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0