我正在编写一个小插件,该插件将封装自动聚焦设置,但是当我使用JavaScript动态添加属性时,它不会自动聚焦页面,这很奇怪。有没有办法解决?
HTML:
<input type="text">
Run Code Online (Sandbox Code Playgroud)
JS:
document.querySelector('input').setAttribute('autofocus', 'autofocus');
Run Code Online (Sandbox Code Playgroud)
不做:
document.querySelector('input').setAttribute('autofocus', 'autofocus').focus();
Run Code Online (Sandbox Code Playgroud)
jSFiddle:http : //jsfiddle.net/wPUNN/
尝试这样的事情
document.querySelector('input').focus()
Run Code Online (Sandbox Code Playgroud)
编辑
如果你想要 HTML 5 标准,你应该让 HTML 看起来像这样
<input type="text" autofocus>
Run Code Online (Sandbox Code Playgroud)
小智 7
最好的方法似乎是这样的:
document.querySelector('input').autofocus = true;
Run Code Online (Sandbox Code Playgroud)
这篇文章可能有助于解释为什么使用反射属性:/sf/answers/1313929221/
但是,您似乎需要在文档加载附近应用它。不然好像不会火。我认为这是因为这里(http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#autofocusing-a-form-control:-the-autofocus-attribute:the-dialog -element)它被定义为在页面加载后立即工作。我还没有看到任何其他内容表明可以稍后调用它。每次我稍后尝试使用 3 秒的 setTimeout 来触发它时,它都不会聚焦该字段。
归档时间: |
|
查看次数: |
12227 次 |
最近记录: |