是否可以确定用户是否在当前网页上处于活动状态,或者是否专注于不同的选项卡或窗口?
似乎如果您切换选项卡,任何设置超时/间隔的 JavaScript 都会继续运行。当用户不在页面上时能够“暂停”事件会很好。
像将鼠标悬停事件附加到主体上这样的事情会起作用吗?或者这会太占用资源吗?
您可以在 上放置onfocus/事件。onblurwindow
窗口上的这些事件得到了广泛的支持。
例子:
window.onfocus = function() {
document.body.innerHTML += "<br>I've gained focus.";
};
window.onblur = function() {
document.body.innerHTML += "<br>I've lost focus.";
};Run Code Online (Sandbox Code Playgroud)
span {color:blue}Run Code Online (Sandbox Code Playgroud)
<span>CLICK IN AND OUT OF THIS FRAME.
<br><br>(It has its own "window" object).</span>
<br><br>Run Code Online (Sandbox Code Playgroud)