首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >窗口卸载/卸载前事件不工作?

窗口卸载/卸载前事件不工作?
EN

Stack Overflow用户
提问于 2022-01-08 22:58:51
回答 1查看 570关注 0票数 1

我曾在其他项目/游戏中使用过这个事件,但它似乎并没有在这个项目上发挥作用。onload事件正在正常工作。

脚本链接在< /body >标记之前的html底部

client.js中的代码

代码语言:javascript
复制
(() => {
    // Player Closes window
    window.addEventListener("beforeunload", function (e) {
        sock.emit('player-leave', player);
        alert('window.addEventListener');
    });
    window.onbeforeunload = function(event) {
        sock.emit('player-leave', player);
        alert('window.onbeforeunload');
    };
    window.onunload = function(event) {
        sock.emit('player-leave', player);
        alert('window.onunload');
    };
})();

事件不会通过throu,也不会显示警报。

完整代码的git存储库链接:https://github.com/Tw1ster95/drawitgame

编辑:我想我找到了一种方法来使用套接字id来断开播放器,但我仍然想知道为什么它在卸载前不发出信号。

EN

回答 1

Stack Overflow用户

发布于 2022-01-08 23:39:28

这不是onbeforeonload的问题。alert不能工作的原因是现代浏览器在执行beforeunload时会忽略alert()

HTML规范指出,在卸载前事件期间,对window.alert()、window.confirm()和window.prompt()方法的调用可能被忽略。有关更多细节,请参见HTML规范。

检查它,这里

如果您运行您的网页并继续按一个重新加载键,您可能会在控制台中看到错误消息Blocked alert() when beforeunload

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70637104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档