英文:
Detect if browser tab/window is focused or currently selected
问题
我正在开发一个知识问答游戏(作为主应用的附加功能),像任何在线知识问答游戏一样,玩家很明显可以通过谷歌搜索来作弊找答案。不过,我想要检测用户是否基本上离开了当前的标签窗口,因为这是一种简单的方式来判断用户在回答问题时是否切换到了其他网站(如果是的话,我将惩罚他们的得分)。
我已经使用了页面可见性API,详细信息可以参考这个回答:https://stackoverflow.com/a/1060034/5579458 - 不过,它只在用户切换标签或最小化/最大化窗口时才有效。如果用户保持标签处于活动状态,但从任务栏最大化了其他程序或将焦点放在另一个窗口上,onchange
事件不会被触发。我们该如何编写代码来解决这个问题呢?
英文:
I am building a trivia quiz game (as a side feature of a main app), and as with any online trivia, obviously you can cheat by googling the answer. However, I want to detect basic navigation away from the current/tab window, as this is a simple way of seeing if a user navigated away from the focused site while answering (I will penalize their score if they do).
I have used the Page Visibility API, detailed in this answer https://stackoverflow.com/a/1060034/5579458 - however it only works if the user changes tabs, or minimizes/maximizes the window. The onchange event is not triggered if the user leaves the tab active, but maximizes another program over it from the taskbar or places focus on another window. How can we program this?
答案1
得分: 0
如果visibilityState对您不合适,那么我想唯一的其他选择是onmouseout事件!
window.onmouseout=function(){
alert('你要去哪里?');
};
如果以上方法不起作用,尝试在文档主体上使用它...
document.body.onmouseout=function(){
alert('你要去哪里?');
};
英文:
If the visibilityState is no good for you then I guess the only other alternative; which is rather strict, is the onmouseout event!
window.onmouseout=function(){
alert('Where are you going?');
};
Upon this failing, try it on the document body...
document.body.onmouseout=function(){
alert('Where are you going?');
};
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论