在我的Django网站上,我希望在关闭标签页或浏览器时自动退出网站。我的意思是,当我通过关闭标签页而不是使用退出按钮来关闭网站时,在再次输入URL后,我希望看到用户已经退出网站,以强制用户再次输入用户名和密码。在JQuery中是否有方法处理关闭选项卡?先谢谢你了。Edit:onunload和onbeforeunload事件会在重新载入页面时,导致登出使用者。
balp4ylt1#
将 注销 代码 添加 到 onunload 事件 中 。
window.onunload = function () { //logout code here... }
中 的 每 一 个在 JQuery 中 , 可以 使用 . unload ( ) 函数 。 记住 , 您 没有 太 多 的 时间 , 因此 您 可以 发送 Ajax 请求 , 但 结果 可能 无法 到达 客户 端 。另 一 个 技巧 是 打开 一 个 小 的 新 窗口 , 并 在 那里 处理 注销 。
window.open("logout url","log out","height=10,width=10,location=no,menubar=no,status=no,titlebar=no,toolbar=no",true);
格式如果 您 想 禁止 关闭 窗口 ( 或者 至少 警告 用户 ) , 可以 使用 以下 代码 :
window.onbeforeunload = function(event) { //if you return anything but null, it will warn the user. //optionally you can return a string which most browsers show to the user as the warning message. return true; }
格式另 一 个 技巧 是 每 隔 几 秒钟 就 ping 客户 端 。 如果 没有 回复 , 假设 用户 关闭 了 窗口 , 浏览 器 崩溃 或 网络 问题 导致 聊天 会话 结束 。 在 客户 端 , 如果 你 没有 收到 ping 包 , 你 可以 假设 网络 连接 或 服务 器 有 问题 , 你 可以 显示 注销 警告 ( 也 可以 让 用户 重新 登录 ) 。
erhoui1w2#
在Django的settings.py文件中,你可以添加一个标志:会话在浏览器关闭时过期=真这将在浏览器关闭时注销用户。请注意,如果仍有其他选项卡或窗口打开,用户将保持登录状态(浏览器必须完全关闭)。
ssm49v7z3#
您可以使用Javascript onunload和onbeforeunload事件。在这些事件中,破坏Django的会话cookie。当你离开一个网站时,这些事件也会被触发,所以如果这是你真正想要的,要小心并三思。
onunload
onbeforeunload
3条答案
按热度按时间balp4ylt1#
将 注销 代码 添加 到 onunload 事件 中 。
中 的 每 一 个
在 JQuery 中 , 可以 使用 . unload ( ) 函数 。 记住 , 您 没有 太 多 的 时间 , 因此 您 可以 发送 Ajax 请求 , 但 结果 可能 无法 到达 客户 端 。
另 一 个 技巧 是 打开 一 个 小 的 新 窗口 , 并 在 那里 处理 注销 。
格式
如果 您 想 禁止 关闭 窗口 ( 或者 至少 警告 用户 ) , 可以 使用 以下 代码 :
格式
另 一 个 技巧 是 每 隔 几 秒钟 就 ping 客户 端 。 如果 没有 回复 , 假设 用户 关闭 了 窗口 , 浏览 器 崩溃 或 网络 问题 导致 聊天 会话 结束 。 在 客户 端 , 如果 你 没有 收到 ping 包 , 你 可以 假设 网络 连接 或 服务 器 有 问题 , 你 可以 显示 注销 警告 ( 也 可以 让 用户 重新 登录 ) 。
erhoui1w2#
在Django的settings.py文件中,你可以添加一个标志:
会话在浏览器关闭时过期=真
这将在浏览器关闭时注销用户。请注意,如果仍有其他选项卡或窗口打开,用户将保持登录状态(浏览器必须完全关闭)。
ssm49v7z3#
您可以使用Javascript
onunload
和onbeforeunload
事件。在这些事件中,破坏Django的会话cookie。当你离开一个网站时,这些事件也会被触发,所以如果这是你真正想要的,要小心并三思。