页面上DOM元素可以通过页面加载、用户的输入和调用focus
方法等来获得焦点。
在HTML5中document
对象新增了activeElement
属性,这个属性会引用当前获得焦点的那个元素。
<html>
<head>
<meta charset='utf-8'/>
<title>foo</title>
</head>
<body>
<button id='btn'>click</button>
<script>
let btn = document.getElementById('btn');
btn.focus();
console.log(btn == document.activeElement); //true
</script>
</body>
</html>
需要注意的是,页面在加载完成后document.activeElement
属性引用的是document.body
。而文档加载时,document.activeElement
属性的值为null
。
HTML5中还为document
对象新增了一个hasFocus
方法,可以用来判断页面是否获得了焦点。通过页面是否获得焦点则可知道用户是否在和页面交互。