我可以在具有满足感的元素上使用自动对焦吗?

daG*_*GUY 14 text input contenteditable autofocus

我正在使用a上的contenteditable属性,<div>以使其根据需要充当文本字段(供用户重命名).但我也想启用autofocus它,因此用户可以立即开始输入(<div>始终contenteditable最初启用).

这有效和/或可能吗?或者我是否必须切换到标准文本输入?

Tim*_*own 14

我想,你必须在大多数浏览器中使用JavaScript.它不适用于iOS,它只允许focus()在真实用户交互的事件处理程序中进行编程使用(例如click触摸相关事件).

此外,请注意,如果页面上还有其他输入,则用户可能会在文档完全加载之前将注意力集中在其中一个上,在这种情况下,用户发现焦点已从中移动是非常烦人的当load事件发生时,在它们下面,所以你应该使用输入的focus事件来跟踪它.

<div contenteditable="true" id="editable"></div>

<script type="text/javascript">
    window.onload = function() {
        document.getElementById("editable").focus();
    };
</script>
Run Code Online (Sandbox Code Playgroud)

  • 如果HTML5自动聚焦属性开始支持contenteditable元素,那么这可能是一个更好的解决方案.但是目前它只适用于表单元素:https://developer.mozilla.org/en-US/docs/Web/HTML/Forms_in_HTML#The_autofocus_attribute (2认同)