Por favor revise mi jsFiddle¿Cómo hacer un autoenfoque de entrada en Internet Explorer?
¿Cómo puedo hacer esto en el enfoque automático como lo es para Chrome, Safari, Opera y Firefox para IE?
Por favor revise mi jsFiddle¿Cómo hacer un autoenfoque de entrada en Internet Explorer?
¿Cómo puedo hacer esto en el enfoque automático como lo es para Chrome, Safari, Opera y Firefox para IE?
Deberá confiar en javascript para hacerlo, ya que html5 autofocus no es compatible con IE. Hay una buena entrada en el blog sobre él aquí: http://www.html5tutorial.info/html5-autofocus.php
Básicamente, primero compruebe si se admite el atributo, y luego usar JavaScript para enfocar manualmente en dicha entrada utilizando el método focus()
si no lo es.
enfoque automático en el IE es es sólo
<input type="text" id="searchbar" autofocus />
no
<input type="text" id="searchbar" autofocus="autofocus"/>
Ver http://msdn.microsoft.com/en-us/library/windows/apps/hh441087(v=vs.85).aspx para obtener más información.
Estás equivocado. Ambas sintaxis funcionan en todos los navegadores compatibles con 'autofocus'. Sin embargo, Internet Explorer solo lo admite desde la versión 10. – duri
Entonces, ¿cómo incluyo ambos para que funcione en ambos navegadores? – James
Esto es incorrecto. Ver http://stackoverflow.com/a/25449778/1430996 –
Normalmente utilizo jQuery:
$('input').focus()
ejemplo vivo: http://jsfiddle.net/simply_simpy/eb4JJ/5/
Ese es el mejor método, ya que funciona en todos los navegadores. – DannyCruzeira
Aquí hay una sola línea (así, una línea de lógica actual) que utiliza jQuery para hacer el trabajo de enfoque automático en el IE. Se rescata si el foco ya está configurado, en otras palabras, en cualquier navegador compatible con HTML5.
$(function() {
$('[autofocus]:not(:focus)').eq(0).focus();
});
Expliqué cómo funciona in my blog. Y here es un jsFiddle actualizado que funciona en IE.
¿Qué pasa si hay (por error) * dos * elementos con el atributo 'autofocus'? En los navegadores compatibles, ¿no encontrará este código el segundo elemento (desenfocado) y establecerá el foco allí? – xec
No, @xec, para eso es '.eq (0)'. Además, si hay dos elementos 'autofocus', entonces eso es un error en la página y realmente no importa cuál sea el foco, ¿no? –
Se llama al '.eq (0)' después de ejecutar el selector ': not (: focus)', por lo que no hace la diferencia. Estoy de acuerdo en que no es un gran problema, solo es un error cuando el html no es válido. En cualquier caso, creo que '$ ('[autofocus]'). Focus()' debería ser suficiente. – xec
A partir de hoy, 13/12/2016, la palabra clave de enfoque automático funciona en IE 11.0.36 en Windows 10 pero no en IE 11.0.35 en Windows 7. Cómo muy irritante. –