OM *_*ity 204 javascript focus
是否可以专注于<div>使用JavaScript focus()函数?
我有一个<div>标签
<div id="tries">You have 3 tries left</div>
我试图专注于以上<div>使用:
document.getElementById('tries').focus();
但它不起作用.有人可以提出建议....
Fen*_*ton 413
是的 - 这是可能的.为了做到这一点,你需要分配一个tabindex ...
<div tabindex="0">Hello World</div>
tabindex为0将使标记"按页面的自然Tab键顺序".较高的数字将赋予其特定的优先顺序,其中1将是第一个,2秒,依此类推.
您还可以给出-1的tabindex,这将使div只能通过脚本而不是用户进行聚焦.
document.getElementById('test').onclick = function () {
    document.getElementById('scripted').focus();
};div:focus {
    background-color: Aqua;
}<div>Element X (not focusable)</div>
<div tabindex="0">Element Y (user or script focusable)</div>
<div tabindex="-1" id="scripted">Element Z (script-only focusable)</div>
<div id="test">Set Focus To Element Z</div>显然,拥有一个可以通过脚本聚焦的元素是一种耻辱,你无法通过其他输入法聚焦(特别是如果用户只是键盘或类似的约束).还有一大堆标准元素默认是可聚焦的,并且具有语义信息以帮助用户.明智地使用这些知识.
Cas*_*Chu 95
window.location.hash = '#tries';
这将滚动到有问题的元素,基本上"聚焦"它.
vin*_*ths 72
document.getElementById('tries').scrollIntoView()作品.这比window.location.hash  固定定位时效果更好.
Sar*_* Ak 30
您可以使用tabindex
<div tabindex="-1"  id="tries"></div>
tabindex值可以允许一些有趣的行为.
aza*_*zad 13
<div id="inner" tabindex="0">
    this div can now have focus and receive keyboard events
</div>
小智 5
document.getElementById('test').onclick = function () {
    document.getElementById('scripted').focus();
};div:focus {
    background-color: Aqua;
}<div>Element X (not focusable)</div>
<div tabindex="0">Element Y (user or script focusable)</div>
<div tabindex="-1" id="scripted">Element Z (script-only focusable)</div>
<div id="test">Set Focus To Element Z</div>