我写了逻辑来从beforeunload
的web应用程序注销,如下:
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
事件有什么问题?
你是否在没有听众的情况下尝试过?
window.onbeforeunload = function(event)