繁体   English   中英

onbeforeunload javascript调用backing bean方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM