Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.onbeforeunload、window.unload、window.beforeunload函数在IE和Mozilla中不起作用_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript window.onbeforeunload、window.unload、window.beforeunload函数在IE和Mozilla中不起作用

Javascript window.onbeforeunload、window.unload、window.beforeunload函数在IE和Mozilla中不起作用,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,是否有其他方法调用window.onbeforeunload函数?您可以为Firefox和IE使用以下代码: window.onbeforeunload = function (event) { // I need to call an API here but the window is closing // before making that HTTP call parent.API.LMSFinish("").then(function (

是否有其他方法调用window.onbeforeunload函数?

您可以为Firefox和IE使用以下代码:

window.onbeforeunload = function (event) {            
    // I need to call an API here but the window is closing
    // before making that HTTP call
    parent.API.LMSFinish("").then(function () { })
};
更新:

如果您的呼叫是异步的,窗口将关闭,您的呼叫将不会触发。在这种情况下,您必须执行同步调用,如下所示:

var myEvent = window.attachEvent || window.addEventListener;
var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable

myEvent(chkevent, function(e) { // For >=IE7, Chrome, Firefox
    var confirmationMessage = 'Are you sure to leave the page?';
    (e || window.event).returnValue = confirmationMessage;
    return confirmationMessage;
});

绝对受支持,并且在您提到的浏览器中工作。问题很可能是您在该事件中放置的代码。但是,您还没有向我们展示这一点,因此没有人能够真正帮助您window.onbeforeunload=function(event){parent.API.LMSFinish(“”)。然后(function(){}}//在LMSFinish中我调用http hit。但它并没有命中被调用方,即使我尝试了这个方法,它也会在那个函数中运行,但在调用http之前,命中窗口正在关闭尼斯代码段——从这个角度来看,这应该是可以接受的答案。
$.ajax({
    type: 'POST',
    async: false,
    url: '/clientarea/utils/record-time',
    data: 'teid=' + teid + '&t=' + t
});