在浏览器窗口关闭或onbeforeunload上提交表单

时间:2017-11-07 11:29:15

标签: javascript jquery forms

我有一个用户进度数据存储在我定期提交的表单中或应用程序的某个序列或退出按钮上。

我面临的问题是,如果用户浏览应用程序然后直接关闭浏览器窗口(而不是单击应用程序中的退出按钮),则表单提交不起作用且用户进度数据将丢失浏览器窗口在此之前关闭。

我尝试了以下内容,它在Chrome中运行良好:

function listenForUnloadEvent()
{
    $(window).on('beforeunload', function ()
    {
       ... trackBeforeExitCourse();
    }
}

function prepareForm() {
    .....
    $(window).bind('beforeunload', function () {
        myForm.submit();
    });
}

但是,上述代码在Safari或Firefox上不起作用。

客户端不希望在尝试关闭窗口时显示任何警告消息,而是希望我们提交表单并存储用户进度数据。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试如下。您可以 refer this MDN document 获取更多信息。

$(window).on('beforeunload', function(e) { 
   $('form').submit();
});