首页 > 解决方案 > 当用户打开新标签或转到另一个标签时如何发出通知?

问题描述

我正在开发一个包含用户必须完成的测试的项目。测试开始后,我不希望参与者能够打开其他站点或选项卡。当他们确实打开一个新标签时,我想显示一个警报,如果他们确定要打开一个新标签,则会提示他们,从而完成测试。

我阅读了Window.focusand onbeforeunload,但onbeforeunload仅在您关闭选项卡并且焦点未按预期工作时才有效。

我用 Django 编写了整个项目,但我认为我应该使用 JS。

标签: javascriptdjango

解决方案


这在浏览器中是不可能的。您的选项卡无权访问其他选项卡中的信息,或页面上发生的事件以外的事件。

但是,可以确保鼠标不会离开屏幕。如果您使用的是 jQuery,您可以使用

$(document).mouseleave(function () {
    console.log('out');
});

推荐阅读