проблема с событием beforeunload в элементе управления WebBrowser c # winform - PullRequest
0 голосов
/ 26 февраля 2019

Я написал логику для выхода из веб-приложения даже в beforeunload следующим образом:

window.addEventListener("beforeunload", function (event) {  
   //Logout logic
   //Calling logout api with values from session
   //clearing the session on success 
});

он работает нормально во всех веб-браузерах (IE, Mozilla, Chrome), однако это не такработая из WebBrowser элемента управления в winform приложении.

В чем может быть причина этого?

PS: нет ничего плохого в javascript, когда я вызываю этот же скрипт, вызывая егокак показано ниже, он работает нормально:

   HtmlElement head = webBrowser4.Document.GetElementsByTagName("head")[0];
   HtmlElement scriptEl = webBrowser4.Document.CreateElement("script");
   IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
   element.text = @"function Logout() {
   $.ajax({
         url: '/api/Logout',
         type: ""GET"",
         contentType: ""application/json;charset=utf-8"",
         success: function(returnVal) {
                    },
         complete: function() {
                     sessionStorage.clear();
                    },
         error: function(returnVal) {
                        }
                    });
                 }";
     head.AppendChild(scriptEl);
     webBrowser4.Document.InvokeScript("Logout");

В чем проблема с событием beforeunload в элементе управления WebBrowser в winform?

1 Ответ

0 голосов
/ 26 февраля 2019

Вы пробовали это без слушателя?

window.onbeforeunload = function(event)
...