gpt4 book ai didi

javascript - onbeforeUnload 不返回或不显示对话框

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:21 24 4
gpt4 key购买 nike

我正在使用 richfaces 在 Java EE 中开发 Web 应用程序。有一个链接,可以注销用户。当用户离开页面或关闭浏览器时,我应该注销用户,因为我必须知道他何时离开我们的页面。这是一个片段:

  function fireEvent(obj,evt){

var fireOnThis = obj;
if( document.createEvent ) {
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( evt, true, false );
fireOnThis.dispatchEvent(evObj);
} else if( document.createEventObject ) {
fireOnThis.fireEvent('on'+evt);
}
}

var popit = true;
window.onbeforeunload = function() {
if(popit == true) {
fireEvent(document.getElementById("logout_form:logout_link"),'click');
}
}

这仅适用于浏览器关闭,不适用于导航离开或刷新。我更改了 fireEvent(...) 以返回“”。一切正常。如果我在 fireEvent(...) 之后键入 return ""它运行良好,只是我不想显示对话框。我该如何解决这个问题?

最佳答案

使用 synchronous AJAX 调用,然后将您的关闭方法放入回调中:

    window.onbeforeunload = function() {
// This template uses no error checking, it's just concept code to be
// expanded on.

// Create a new XMLHttpRequest object
var AJAX=new XMLHttpRequest();

// Handle ready state changes ( ignore them until readyState = 4 )
AJAX.onreadystatechange= function() { if (AJAX.readyState!=4) return false; }

// we're passing false so this is a synchronous request.
// The script will stall until the document has been loaded.
// the open statement depends on a global variable titled _userID.
AJAX.open("GET", 'about:blank', false);
AJAX.send(null);
}

关于javascript - onbeforeUnload 不返回或不显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13384042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com