用户可以绘制的flash电影是调用JS函数。每当电影中的某些内容发生变化时listenToUnload(true)
。每当按下Flashmovie中的保存按钮时,都会调用listenToUnload(false);
。
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 :(得分: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
。