У меня есть несколько обработок сообщений 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;
});
});
Кто-нибудь сталкивался с чем-то подобным?