为什么我的全局变量很顽固?
这是我的简化代码段:
window.bVar = false;
function iChange() {
bVar = true;
alert( bVar ); // 'true'
}
// some event calls iChange function
window.onbeforeunload = alert( bVar ); // 'false'
警报始终显示“错误”字样。 (除非我在功能中提醒)。
我也尝试使用var bVar = false
来设置全局变量。
为什么我的全局变量不会超出函数范围?
答案 0 :(得分:3)
这真的太短了,不能成为一个答案,这就是我在评论中写的原因,但是你立即评估alert(bVar)
而不是将它作为onbeforeunload监听器的一部分进行评估。你需要这样的东西:
window.onbeforeunload = function() { alert(bVar); };
答案 1 :(得分:0)
为了不那么简洁和具体,我想调用另一个函数,没有真正需要提醒。另一个函数将执行.load并将值写入数据库。这应该工作吗? ;因为它没有传递全局变量的更新值:(例如......
var bVar = "value";
window.onbeforeunload = function() { dosomethingelse( bVar ); }
function dosomethingelse( bVar ) { $("#id").val( bVar ); }