我处理以下代码:
<!DOCTYPE html>
<body>
<a id="toto" contenteditable="true">Button</a>
</body>
<script>
var elt= document.getElementById('toto');
elt.focus();
</script>
</html>
加载页面后,光标已经就位,您只需键入所需内容即可。麻烦的是它不适用于IE11。
由于这适用于其他标签,例如<div>
,我认为我必须让<a>
专注于IE。有什么想法吗?
答案 0 :(得分:1)
这里有两个问题。首先,IE在页面加载后自动关注body
元素。因此,如果您的代码与问题中的完全相同,则会将焦点设置在a
元素上,但在触发load
事件后几毫秒内将覆盖此元素。避免这种情况的一种简单方法是确保仅在加载后设置焦点。例如:
<a id="toto" contenteditable="true">Button</a>
<script>
window.onload = function() {
var elt= document.getElementById('toto');
elt.focus();
}
</script>
但IE似乎也存在将焦点设置在没有a
属性的href
元素上的问题。无论原因是什么,您可以通过添加href="javascript:;"
来规避这一点a),但这很尴尬并导致应用链接格式,或者b)将a
元素更改为例如一个span
元素;