gpt4 book ai didi

javascript - onbeforeunload javascript 调用 backing bean 方法

转载 作者:行者123 更新时间:2023-11-28 09:00:28 24 4
gpt4 key购买 nike

我正在使用 jsf 开发一个网站,并受益于 primefaces 的功能,而我在管理在卸载之前保存更改的想法时,我会遇到一个问题。我正在使用 javascript 进行 onbeforeunload,以便在刷新、返回或关闭浏览器之前保存所做的更改,因为我知道我使用的是 Firefox 浏览器,这是我的 JavaScript 代码:

Window.onbeforeunload= handleOnClose();
Function handleOnClose(){
If(document.getElementById("MyForm:btnEdit").disabled== true {
If confirm("The page will close, Do you want to save changes?")
Save();
}
}

我正在从支持 bean 调用 javascript 中的 save 方法,使用:

<p:remoteCommand name="Save" actionListener="#{bean.save()}" />

问题是 javascript 自然触发,但负责保存的方法仅在关闭浏览器时调用,而在返回或刷新时不调用!对于这个问题有什么想法或提示吗?

最佳答案

在 onbeforeunload 事件中创建同步 ajax 请求。

Window.onbeforeunload= handleOnClose();
Function handleOnClose(){
If(document.getElementById("MyForm:btnEdit").disabled== true {
If confirm("The page will close, Do you want to save changes?")
Save();
$.ajax({
url: '/foo',
type: 'GET',
async: false,
timeout: 4000
});
}
}

这将阻止浏览器最多 4 秒。

关于javascript - onbeforeunload javascript 调用 backing bean 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17806519/

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