我创建了一个弹出窗口,我试图在关闭时触发一个事件,以便logout()
用户。
我的代码如下:
$(document).ready(function()
{
$(window).bind('beforeunload', function() {
return confirm("");
});
});
当我关闭关闭按钮时,我会这样:
false 来自哪里?并且我想发布消息而不是Are you want to leave this page?
如果我点击“离开此页面”按钮,则应该有一个拨打logout()
的条款,或者只是留在页面上。
请指导我。
答案 0 :(得分:0)
beforeunload
事件处理程序必须返回一个字符串,该字符串将显示为提示消息。您在对话框中看到的false
是confirm()
函数的字符串化返回值。并且消息“你想离开这个页面吗?”由浏览器定义,不是脚本可控的。
基本上你不能将函数绑定到beforeunload
事件。这是由于页面安全性,否则绑定alert()
将阻止用户永久关闭窗口。
此外,我不认为您的原始要求“当用户关闭窗口时注销”是可行的。部分原因是上述技术问题。实际上,即使您能够以“神奇”的方式实现这一点,用户也有太多方法可以在不调用logout()
的情况下关闭浏览器,例如杀死浏览器进程,削减计算机电源...因此,您的应用程序不应该依赖前端注销 - 它应该使会话保持有限的时间 - 比如20分钟 - 并使会话无效过期后。