可见性更改上的弹出警报使页面卡住

时间:2016-01-19 10:42:06

标签: javascript dom

我遇到以下方法的问题:

var blocked = false;

document.addEventListener("visibilitychange", function() {
 if (!blocked && document.hidden) {
   blocked = true;
   alert('Blocked once');
 }
});

如果他试图切换标签,我想向用户显示一次警报。 这样可以正常工作,但在提醒弹出窗口后,它会使页面卡住。

我用下面的插件说明了它: https://plnkr.co/edit/4NluXEQlal33yq06jwt6?p=preview

  • 在看到警报后尝试更改输入中的文本。这是不可能的。

1 个答案:

答案 0 :(得分:0)

  

当选项卡的内容具有时,将触发visibilitychange事件   变得可见或被隐藏

在您的情况下,它已被隐藏(锁定屏幕)。您无法更改document.visibilityState,它是只读值。

查看JavaScript onbeforeunload event,也许会有所帮助。