Javascript 如何:在调用函数(param)时将unbeforeunload调用绑定到窗口?
用户可以画画的flash电影正在调用JS函数。每当电影中发生更改时,都会调用Javascript 如何:在调用函数(param)时将unbeforeunload调用绑定到窗口?,javascript,jquery,Javascript,Jquery,用户可以画画的flash电影正在调用JS函数。每当电影中发生更改时,都会调用listenToUnload(true)。每当按下Flashmovie中的save按钮时listenToUnload(false)被调用 function listenToUnload(saved) { if (saved) { $(window).bind('unload', function() { closeWindowWarning; }); } el
listenToUnload(true)
。每当按下Flashmovie中的save按钮时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)
,我不希望将unload函数多次绑定到窗口
这是正确的做法吗?还有其他方法吗
谢谢首先,您需要在卸载
之前绑定,而不是卸载
您可以将标志(是否在卸载前确认)存储在变量中,或存储在$(文档).data('confirm_unload',TRUE_或FALSE)
中,然后:
function closeWindowWarning() {
if ($(document).data('confirm_unload'))
return "You haven't saved your last changes";
}
当然,还要绑定beforeunload事件一次:
$(window).bind('beforeunload', closeWindowWarning)
您不需要在另一个函数中包装closeWindowWarning
。但是这个变量是如何从flash中发送/设置的?函数listenToUnload(flag){$(document).data('confirm_unload',flag);}
我完全不明白。你能提供更多的细节吗。我无法调用$(文档)。Actionscript中的数据!定义函数listenToUnload
,如我前面的注释所示。你说Actionscript总是调用这个函数,对吗?