Javascript onbeforeunload问题

Nik*_*Nik 5 javascript onbeforeunload javascript-events

好吧,我有以下代码的问题.当用户关闭浏览器时,它应该提示他们单击"确定"或单击"取消"退出页面.单击"确定"将触发window.location以重定向到另一个页面以进行用户跟踪(是的,为避免火焰战争,如果用户从任务管理器中删除浏览器,则会有一个辅助系统来确保准确跟踪(如类似问题所述)).CANCEL将保留在页面上,问题在于无论您点击什么按钮,都会被重定向,就好像您想要离开页面一样.相关代码如下.

    window.onbeforeunload = confirmExit;
function confirmExit()
{
    var where_to = confirm("Click OK to exit, Click CANCEL to stay.");
    if (where_to == true)
    {
        window.location="logout.php";
    }
    if (where_to == false){
        alert("Returning...");
    }
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 6

onbeforeunload不起作用.关联的函数应返回一个字符串,该字符串依次显示在默认onbeforeunload对话框中.

function confirmExit() {
    return "This message will appear in the dialog.";
}
Run Code Online (Sandbox Code Playgroud)

但是你没有归还任何东西并且用自己的手拿它confirm().当函数没有返回任何内容时,onbeforeunload根本不会显示该对话框.

要调用真正的注销,您需要使用该onunload事件.这是一个重写:

window.onbeforeunload = confirmExit;
window.onunload = logout;

function confirmExit() {
    return "Click OK to exit, Click CANCEL to stay.";
}

function logout() {
    window.location = 'logout.php';
}
Run Code Online (Sandbox Code Playgroud)

然而,你是否依赖于webbrowser,是否最后一次实际命中服务器.大多数(如果不是全部)网络浏览器都没有.我宁愿火对URL的请求ajaxical,但你依赖于WebBrowser控件,以及它是否会工作得很好.