2010-10-22 81 views

回答

57

在IE中,使用要成为活动元素的元素的setActive()方法。在支持activeElement的其他浏览器中,只要元素能够接收焦点(表单元素,可编辑元素,设置了tabindex的元素),就可以使用元素的focus()方法。

如果你想设置在activeElement回默认(在大多数浏览器<body>元素),只需调用有源元件的blur()方法:

document.activeElement.blur(); 
+0

让我们以jquery.com的页面为例。当你进入页面并检查FireBug中的document.activeElement时,你会得到“”。那么让我们假设你改变activeElement做一些链接元素()。你怎么能在之后重置activeElement到前一个(主体)。我不能使用document.body.focus(); – mgamer 2010-10-22 09:45:02

+2

使用'document.activeElement.blur();'。答案已更新。 – 2010-10-22 09:55:16

+0

这是完美的。谢谢! – mgamer 2010-10-22 09:56:30

15

你可以只是.focus()你想要的元素,它将是新的document.activeElement

+12

element.focus只有当要素在Chrome 55的效果.tabindex被定义。 Div默认没有tabindex,所以默认div.focus()没有效果。在调用焦点之前,只需将element.tabindex设置为某个值,如'-1'。然后调用element.focus。现在你会看到元素=== document.activeElement,它现在意味着向上/向下滚动键将应用于当前活动的元素。混乱! – Josh 2016-11-11 17:30:42

相关问题