首页 > 解决方案 > 更好的解决方案或更换window.unload

问题描述

再会,

我有 java web 应用程序,我会在登录后执行以下操作:

  1. 登录后,系统会显示登陆页面,在登陆页面中,会有一个标签菜单,并且有很多模块可以从标签菜单中触发导航到不同的页面。
  2. 当用户尝试导航到其他页面时,我需要实现一些运行逻辑,该逻辑将是一种检查某些内容并返回 a 的方法boolean,如果boolean为真,那么它将引导用户到他从导航选项卡单击的页面。如果boolean为假,那么我希望系统将用户引导到特定页面。

起初,我正在考虑使用$(window).unload()然后对我的 java 代码执行 ajax 来执行此逻辑,但是,我发现该unload方法已经从 latest 中删除jQuery

之后我找到了beforeunload jQuery方法。我使用它并调用 ajax 到 java 代码。但是,我发现在调用ajax时,如果我的为booleanfalse,它不会将我定向到特定页面,它仍然会将我定向到我单击的页面。

** 我的jQquery版本是 jQuery v1.12.4,我Stripes用于服务器代码**

有什么建议或更好的解决方案来做这种方法吗?

好心提醒。

标签: javascriptjavajqueryonbeforeunloadstripes

解决方案


我想我找到了解决方案,但不确定是否是最佳实践。

beforeunload当我离开登陆页面时,我使用jQuery 如下调用后端代码。

$(window).bind('beforeunload', function(){
  myfun();
});

然后使用ajax调用:

function myfun(){
     // Write your business logic here
     var updateViewGuideUrl = '<s:url beanclass="com.cs.c.ui.customer.action.LandingAction" event="loginCheck2"/>';

            $.ajax({
                url : updateViewGuideUrl,
                success: function(data, textStatus) {
                    window.location.href = "http://stackoverflow.com";
            } 
            });
}

推荐阅读