全局变量很顽固
Global variable is stubborn
为什么我的全局变量很顽固?
这是我的简化代码片段:
window.bVar = false;
function iChange() {
bVar = true;
alert( bVar ); // 'true'
}
// some event calls iChange function
window.onbeforeunload = alert( bVar ); // 'false'
警报始终显示 'false'(除非我在函数内警报)。
我也试过用var bVar = false
设置全局变量。
为什么我的全局变量不会在函数范围之外改变?
这真的太短了,不能作为答案,这就是我在评论中写下它的原因,但您立即评估 alert(bVar)
而不是将其作为 onbeforeunload 侦听器的一部分进行评估。你需要这样的东西:
window.onbeforeunload = function() { alert(bVar); };
为了不那么简洁和更具体,我想调用另一个函数,不需要提醒。另一个函数将执行 .load 并将值写入数据库。那么这应该有效吗? ;因为它不传递全局变量的更新值:( 例如...
var bVar = "value";
window.onbeforeunload = function() { dosomethingelse( bVar ); }
function dosomethingelse( bVar ) { $("#id").val( bVar ); }
为什么我的全局变量很顽固?
这是我的简化代码片段:
window.bVar = false;
function iChange() {
bVar = true;
alert( bVar ); // 'true'
}
// some event calls iChange function
window.onbeforeunload = alert( bVar ); // 'false'
警报始终显示 'false'(除非我在函数内警报)。
我也试过用var bVar = false
设置全局变量。
为什么我的全局变量不会在函数范围之外改变?
这真的太短了,不能作为答案,这就是我在评论中写下它的原因,但您立即评估 alert(bVar)
而不是将其作为 onbeforeunload 侦听器的一部分进行评估。你需要这样的东西:
window.onbeforeunload = function() { alert(bVar); };
为了不那么简洁和更具体,我想调用另一个函数,不需要提醒。另一个函数将执行 .load 并将值写入数据库。那么这应该有效吗? ;因为它不传递全局变量的更新值:( 例如...
var bVar = "value";
window.onbeforeunload = function() { dosomethingelse( bVar ); }
function dosomethingelse( bVar ) { $("#id").val( bVar ); }