2012-02-20 19 views
0

用戶可以繪製的Flash動畫是調用JS函數。只要電影中的某些內容發生變化,請致電listenToUnload(true)。只要按下Flashmovie中的保存按鈕,就會調用listenToUnload(false);如何在調用函數(param)時將unbeforeunload調用綁定到窗口?

function listenToUnload(saved) { 

    if (saved) { 

     $(window).bind('unload', function() { 
      closeWindowWarning; 
     }); 

    } else if (!saved) { 
     $(window).unbind('unload'); 
    } 

} 

function closeWindowWarning() { return "You haven't saved your last changes"; } 

所以,我真的不知道這是否是正確的方法來做到這一點? 因爲listenToUnload(true)可能會連續調用多次,所以我不想將卸載函數多次綁定到窗口。

這是這樣做的正確方法嗎?任何其他方法?

謝謝

回答

0

首先,你需要在beforeunload,不unload綁定。

可以存儲標誌(卸載之前是否確認)在一個變量,或在$(document).data('confirm_unload', TRUE_OR_FALSE),然後:

function closeWindowWarning() { 
    if ($(document).data('confirm_unload')) 
     return "You haven't saved your last changes"; 
} 

當然,一旦綁定beforeunload事件:

$(window).bind('beforeunload', closeWindowWarning) 

你不需要在另一個功能中包裝closeWindowWarning

+0

但是這個變量是如何從閃存中發送/設置的? – matt 2012-02-20 16:55:24

+0

'function listenToUnload(flag){$(document).data('confirm_unload',flag); }' – ori 2012-02-20 18:10:36

+0

我絕對不明白。你能否提供一點細節。我不能在Actionscript中調用$(document).data! – matt 2012-02-20 19:59:11

相關問題