Autor Zpráva
suvel
Profil
Zdravím,

ve stránce mám skrytý iframe s elemenetem <input> a nedaří se mi na něj dát po zviditelnění toho iframe focus. Zjednodušeně to vypadá takto:

<html>
.
<iframe name="ifr" src="./ifr.php" style="display:none;">
</iframe>
<input type="button" value="zobraz" onclick="document.getElementsByName('ifr')[0].style.display='block'; ifr.document.getElementById('neco').focus();">
.
</html>

ifr.php:
.
<input type="text" id="neco" value="sem chci focus">
<script>
document.getElementById('neco').focus();
</script>
.
Nefunguje ani jeden způsob - ani zvenku, ani zevnitř. Kde dělám chybu? Jak na to?
Keeehi
Profil
S druhým je problém ten, že input focus dostane, ovšem je ve skrytém iframe. Když klikneš na tlačítko pro zobrazení iframu, dostane focus to tlačítko a inputu tedy zmizí.

Pro první případ bych místo
ifr.document.getElementById('neco').focus();
zkusil
document.frames['ifr'].document.getElementById('neco').focus();
suvel
Profil
Keeehi:
Díky, ale už jsem na to přišel. Ten focus zevnitř se skutečně nemohl projevit, ale s tím zvenku byl problém asi s časem - focus přišel pravděpodobně dřív, než se stačilo provést display:block. Asi. Protože když jsem změnil u iframe display na visibility, vše funguje jak má.

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: