2016-11-30 16 views
-2
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関数を呼び出す方法はありますか?window.onbeforeunload、window.unload、window.beforeunload関数がIEとMozillaで機能しない

+0

[ 'window.onbeforeunload'](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload:あなたはこのような、そのイベントに同期呼び出しを行う必要があります#Browser_compatibility)は間違いなくサポートされており、あなたが言及したブラウザで動作します。問題は、あなたがそのイベントの中に入れたコードでしょう。しかし、誰も本当にあなたを助けることができないように私たちに示していません。 –

+0

window.onbeforeunload = function(イベント){ parent.API.LMSFinish( "")then(function(){ }) } // In LMSFinish私はhttpヒットを呼び出しています。しかし、その呼び出しを打つことはありません – sanjay

答えて

1

あなたはFirefoxとIE用のコードの下に使用することができます。

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; 
}); 

UPDATE:

ウィンドウが閉じてしまいますし、あなたの呼び出しが発生しません非同期(async)あなたの呼び出しがある場合

$.ajax({ 
    type: 'POST', 
    async: false, 
    url: '/clientarea/utils/record-time', 
    data: 'teid=' + teid + '&t=' + t 
}); 
+0

私はThis.Itを試しても、その関数に行くが、httpヒットウィンドウを閉じる前に閉じています – sanjay

+0

良いコードスニペット - これはビューの観点から受け入れられた答えでなければなりません。 – belafarinrod91

関連する問題