我想为在线测验编写一个网页。我的基本要求是,如果参加测验的人即使没有最小化浏览器也会更改选项卡或打开新窗口,即如果该人试图从其他窗口/选项卡中查看答案,测验应该停止。我该怎么做?
PS:它不应该是一些非常新的 HTML5 功能。我希望当前所有主要浏览器都支持它。
用于检测用户是否更改选项卡的 Javascript
IT技术
javascript
html
2021-03-09 18:20:24
6个回答
您可以通过将模糊/焦点事件侦听器附加到窗口来确定选项卡或窗口是否处于活动状态。
在 jQuery 中它会是
$(window).focus(function() {
//do something
});
$(window).blur(function() {
//do something
});
引自这个 SO 答案:https : //stackoverflow.com/a/1760268/680578
在 2020 年,您可以:
document.addEventListener("visibilitychange", event => {
if (document.visibilityState == "visible") {
console.log("tab is active")
} else {
console.log("tab is inactive")
}
})
如果您的目标浏览器支持它,则可以使用 HTML5 中提供的页面可见性 API。它不直接检测选项卡更改,每个说,但可见性更改。其中将包括(但不限于)选项卡更改。
请参阅https://developer.mozilla.org/en/DOM/Using_the_Page_Visibility_API
最好的原生函数,没有 jQuery。
document.hasFocus
检查笔,检查当您转到链接并返回代码笔选项卡时会发生什么。
使用 jQuery:
$(window).on('focus', function () {
});
$(window).on('blur', function () {
});
$().focus
&$().blur
已弃用。
其它你可能感兴趣的问题