onbeforeunload不触发确认框

时间:2018-07-24 08:51:23

标签: javascript jquery javascript-events

我有一个页面,该页面打开一个弹出窗口并加载一些URL。我也监视此弹出窗口,以便在它关闭时可以调用一些Ajax请求。代码如下:-

 self.formsubmitAction = function () {
            window.popup = window.open('about:blank','_blank');
            window.popup.document.write('<div><img style="margin-right: auto;margin-left: auto;width: 150px;display: block;margin-top: 20%;" src="/ca/ui/resources/images/loading4.gif"></div>');
        };

现在,还有另一个函数可以为弹出窗口提供打开链接。

self.downLoadSubmitFlag.subscribe(function (submitFlag) {
                $.ajax({
                    type:'POST',
                    url:'/ca/service/api/transaction/initiateDownloads',
                    data:$('[name="dnldJsonInput"]').val(),
                    dataType:'json',
                    contentType: 'application/json; charset=utf-8',
                    success:function(data){
                        window.popup.location = '/ca/ui/download.jsp';
                    },
                    error:function(){
                        console.log('Error');
                    }
                });
        });

此弹出窗口关闭时,我需要调用服务,因此我使用下面所示的代码块对其进行监视:-

var timer = setInterval(checkChild, 500);

        function checkChild() {
            console.log('Monitoring the download')
            if(window.popup){
                if (window.popup.closed) {
                    console.log('Inside the cancellation serive');   
                    $.ajax({
                        type: "POST",
                        url: 'https://' + document.domain + '/ca/service/api/transaction/cancelDownload',
                        success: function(data) {
                            self.downloadVisible(1);
                            self.disableDownload(false);
                            self.disableDownloadStatus(false);
                            self.downloadButtonTitle("Download");
                            window.popup=null;
                            console.log('Execute the Cancel Download Service');
                        }
                    });
                    clearInterval(timer);
                }
            }
        }

现在,加载的URL已经具有JavaScript。即download.jsp的脚本如下:-

  $(window).on('beforeunload', function() {
  return 'Your own message goes here...';
});

但是,当用户尝试关闭选项卡或刷新时,这不会触发确认框。我不确定我在做什么错,这是由于动态加载的弹出窗口吗?

请帮助,当有人离开页面或关闭弹出标签时,我需要使此弹出窗口产生一个确认框。

0 个答案:

没有答案