ASP.net ядро ​​Window.Onunload не работает должным образом - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть несколько обработок сообщений signalR внутри представления.Обработчик открывает новое окно с помощью window.open ().Мне нужно разобраться с некоторыми вещами, когда это окно закрыто.Я использую .onunload () в окне, чтобы я мог обрабатывать некоторые вещи, когда оно закрыто.Я заметил, что .onunload () запускается, как только окно открывается, что не имеет никакого смысла, его следует запускать при закрытии окна.Вот код, который я использую:

        connection.on("ProcessStartEnvironmentReply", (env) =>
        {
            var url = env.url + '/#/?username=' + env.username + '&password=' + env.password;
            environmentId = env.environmentID;

            console.log("Start reply msgid: " + env.sourceMessageId + ", env: " + environmentId + " at " + new Date());

            arenaWin = window.open(url, '_blank');

            arenaWin.onbeforeunload = function ()
            {
                return "Do you really want to close?";
            };
            arenaWin.onunload = function ()
            {
                //TODO: This log message is getting hit as soon as the tab is opened, not useful until fixed.
                console.log("CLOSING TAB ------------------");

                //$.ajax({
                //    url: '/api/dashboard/stop/' + environmentId,
                //    type: "GET",
                //    dataType: "JSON",
                //    success: function (env) {
                //        $("#btnStart").attr("disabled", false);
                //        console.log(env);
                //    }
                //});
            };

            arenaWin.addEventListener('unload', function (e)
            {
                var confirmationMessage = "--------------------\o/----------------------";
                console.log("CLOSING TAB EVENT ADDED");
                (e || window.event).returnValue = confirmationMessage; //Gecko + IE
                return confirmationMessage;
            });

        });

Кто-нибудь сталкивался с чем-то подобным?

...