当前位置: 首页 > 面试题库 >

如何知道用户是否在卸载对话框之前单击了Java上的“取消”?

濮阳振海
2023-03-14
问题内容

当有人尝试导航到特定页面而不保存其工作时,我弹出一个对话框。我使用Javascript的onbeforeunload事件,效果很好。

现在,当用户在出现的对话框中单击“取消”时,我想运行一些Javascript代码(假设他们不想离开页面)。

这可能吗?我也使用jQuery,所以可能会发生像beforeunloadcancel这样的事件可以绑定到吗?

更新 :的想法是实际上将用户保存并定向到其他网页(如果他们选择了取消)


问题答案:

您可以这样做:

$(function() {
    $(window).bind('beforeunload', function() {
        setTimeout(function() {
            setTimeout(function() {
                $(document.body).css('background-color', 'red');
            }, 1000);
        },1);
        return 'are you sure';
    });
});

setTimeout一种方法中的代码具有1ms的延迟。这只是将函数添加到中UIqueue。由于setTimeout异步运行,因此Javascript解释器将继续通过直接调用该return语句来继续,从而触发浏览器modaldialog。这将阻止UIqueue和,从第一个开始的代码将setTimeout不执行,直到关闭模式。如果用户按下“取消”,它将触发另一个setTimeout,它会在大约一秒钟后触发。如果用户单击确定确认,则用户将重定向并且永不触发第二个setTimeout。



 类似资料:
  • 我有两个大小相同的ArrayList,一个用于JButton,一个用于JTextField。单击按钮时,相应的文本字段应更新。我怎么能意识到? p、 jcomponents对(jbutton jtextfield)的数量不是固定的。它们是为用户添加或删除而设计的。但是,它们必须按固定顺序排列。 我如何知道JButton ArrayList中的索引“I”?

  • 如果all调用ActivityCompat.RequestPermissions(),则OS显示一个带有Deny或Permissions按钮的对话框。还有一个“永不再次显示这个”勾选框。 但是,我无法让应用程序知道用户是否勾选了这个框--在onRequestPermissionsResult()中,如果用户单击Deny,以及如果用户在单击Deny之前勾选了这个勾选框,那么grantResults参

  • 问题内容: 我想知道我是否在通话。 如果我正在通话,请启动服务(服务部分已清除)。我该怎么做呢? 参加通话时,我需要致电服务中心…我不知道该怎么做?有什么帮助吗? 问题答案: 您需要广播接收器… 在清单中声明广播接收器… 还声明使用权限… 广播接收器类… 还有一类可自定义电话状态侦听器…

  • 我似乎无法从扩展Fragment的类中获得imageview上的onClick事件。我在这里做错了什么?我对Android开发相对来说是新手..

  • 问题内容: 我已经阅读了两天的信息和样本,但不确定此后是否完成了所有身份验证过程。 我怎么知道我是否已登录,例如,我将有一个带有登录或注销按钮的导航栏,下面是否有一些变量,如代码? 问题答案: 如果用户已登录,则将为中的每个请求创建一个对象,您可以检查任何中间件是否存在: 您可以为此创建简单的中间件,该中间件将检查用户是否已登录,如果没有,则将重定向到页面: 并使用它:

  • 我有一本安装了Android Studio的 Macbook。由于我有使用格拉德的项目(而Android Studio也使用格拉德),我会假设我在机器的某个地方安装了格拉德。但是,如果我在终端中键入,我得到。那么,我是因为我有Android Studio而自动安装了渐变,还是必须运行? 我知道这是一个糟糕/愚蠢的问题,但我只想确保我不会安装 Gradle 两次。