[英]onbeforeunload javascript calling backing bean method
我正在一个使用jsf的网站上工作,并受益于primefaces的功能,而我正在管理在卸载前保存更改的想法,我会遇到问题。 我正在为onbeforeunload使用javascript,以便在对浏览器进行刷新,返回或关闭之前保存所做的更改,这是因为我知道正在使用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秒钟。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.