如何在Internet Explorer中进行输入自动对焦?

Jam*_*mes 8 html css cross-browser

请查看我的jsfiddle

http://jsfiddle.net/WK2N3/1/

我怎样才能在自动对焦中实现这一点,就像Chrome,Safari,opera和firefox一样?

Bri*_*rty 33

这是一个单线程(好的,一行实际逻辑),它使用jQuery在IE中进行自动对焦.如果已经设置了焦点 - 换句话说,在任何支持HTML5的浏览器中,它都会失效.

$(function() {
  $('[autofocus]:not(:focus)').eq(0).focus();
});
Run Code Online (Sandbox Code Playgroud)

在我的博客中解释了它是如何工作的.而这里是一个更新的jsfiddle,在IE浏览器的工作原理.

  • 不,@ xec,这就是`.eq(0)`的用途.此外,如果有两个`autofocus`元素,那么这是页面中的一个错误,哪个获得焦点并不重要,对吧? (3认同)
  • 运行`:not(:focus)`选择器之后调用`.eq(0)`,这样就没有区别了.我同意这不是一个大问题,它只是一个错误,当HTML无效时.无论如何,我相信`$('[autofocus]').focus()`应该足够了. (2认同)

Leo*_*Leo 3

您必须依靠 javascript 来执行此操作,因为 IE 不支持 html5 自动对焦。这里有一篇关于它的很好的博客文章:https://www.html5tutorial.info/html5-autofocus.php

基本上,您首先检查该属性是否受支持,然后使用 javascript 手动聚焦于使用该focus()方法(如果不支持)的输入。