javascript - Greybox: Nelze přesunout fokus na ovládací prvek, protože je neviditelný, není povolen nebo je typu, který fokus nepřijímá
Možná duplicita:
JavaScript: Chyba viditelnosti v Internet Exploreru při nastavování fokusu na vstupní prvek
Mám stránku, která se načítá v greyboxu. Nastavil jsem fokus pomocí document.getElementById("textfield").focus() - to funguje dobře při přímém volání stránky.
Ale když je načteno v greyboxu, nastavení fokusu při události onload() vrací:
Nelze přesunout fokus na ovládací prvek, protože je neviditelný, není povolen nebo je typu, který fokus nepřijímá
Pozdější volání funguje dobře.
Máte nějaké nápady?
Díky!
Odpověď č. 1
Je to dobře známý problém v IE.
O tom si můžete přečíst zde.
Řešením je použít funkci setTimeout(), aby se odložil čas vykonání focus().
musíte vyměnit svůj řádek:
document.getElementById("textfield").focus();
s následujícím:
setTimeout(function() { document.getElementById("textfield").focus(); }, 10);
Odpověď č. 2
Jen rychle odpovídám na toto... musel jsem to dnes večer vyřešit. Použil jsem setTimeout, aby se funkce focus zavolala krátce poté, co se zobrazí stránka greybox.
V mé verzi jsem použil trochu jQuery, protože už bylo v tomto projektu, ale stejně tak byste mohl použít window.onload()
<script type="text/javascript">
$(document).ready(function() {
setTimeout ( "document.getElementById('AdminID').focus(); ", 500 );
});
</script>
