JS定义了一个全局变量 在局部方法里面赋值。如何才能让这个全局变量得到所赋的值?

时间:2022-04-16 10:29:36
 
var number=0;
        window.onload = function()
            {
            height= document.getElementById("wflowlistgrid").offsetHeight;
            number = height
            alert(number);
            }

这一段JS 如何得到方法里面的赋值?谢谢帮忙

13 个解决方案

#1


什么意思,你那段代码就能取到number的值  JS定义了一个全局变量 在局部方法里面赋值。如何才能让这个全局变量得到所赋的值?

#2


这样就可以赋值的

#3


引用 1 楼 z81434362 的回复:
什么意思,你那段代码就能取到number的值  JS定义了一个全局变量 在局部方法里面赋值。如何才能让这个全局变量得到所赋的值?

在方法里面能取到但是 全局变量拿不到值的。

#4


引用 2 楼 Ragin 的回复:
这样就可以赋值的

这样 全局变量得不到值。

#5


引用 4 楼 u012752501 的回复:

你在哪里调用number的 
window.onload函数是文档加载完以后才执行的,如果你在window.onload下面直接alert, 那number的值肯定不会变化
<script language="javascript"> 
var number=-1;
window.onload = function()//文档加载结束以后才执行
{
var height = 100;
number = height;
}
alert(number);//第一个执行,所以number没变化
function a(){
alert(number);//这里number就已经在onload函数里被重新赋值了
}
</script> 
<input type="button" value="a" onclick="a()"/>

#6


你的代码肯定可以给number变量赋值,是不是你获取的时机不对,window.onload是所有资源加载完毕后才执行的,如果资源没加载完毕你就是用脚本获取number变量的值当然获取不到

#7


alert(number);//第一个执行,所以number没变化
因为这句话执行的比  window.onload早。 所以值没有改变

#8


引用 5 楼 Ragin 的回复:
Quote: 引用 4 楼 u012752501 的回复:

你在哪里调用number的 
window.onload函数是文档加载完以后才执行的,如果你在window.onload下面直接alert, 那number的值肯定不会变化
<script language="javascript"> 
var number=-1;
window.onload = function()//文档加载结束以后才执行
{
var height = 100;
number = height;
}
alert(number);//第一个执行,所以number没变化
function a(){
alert(number);//这里number就已经在onload函数里被重新赋值了
}
</script> 
<input type="button" value="a" onclick="a()"/>


按照你的写法试了下。最后输出的值为空 undefined 

#9


引用 8 楼 u012752501 的回复:

开F12调试下。

#10


Quote: 引用 9 楼 Ragin 的回复:

是的 开的F12  我是Vs2008

#11


直接在function里面写  页面刚运行的时候就接收这个number   然后在下面就可以获取了

#12


debugger height= document.getElementById("wflowlistgrid").offsetHeight; 看一眼这个值

#13


我的值也是空

#1


什么意思,你那段代码就能取到number的值  JS定义了一个全局变量 在局部方法里面赋值。如何才能让这个全局变量得到所赋的值?

#2


这样就可以赋值的

#3


引用 1 楼 z81434362 的回复:
什么意思,你那段代码就能取到number的值  JS定义了一个全局变量 在局部方法里面赋值。如何才能让这个全局变量得到所赋的值?

在方法里面能取到但是 全局变量拿不到值的。

#4


引用 2 楼 Ragin 的回复:
这样就可以赋值的

这样 全局变量得不到值。

#5


引用 4 楼 u012752501 的回复:

你在哪里调用number的 
window.onload函数是文档加载完以后才执行的,如果你在window.onload下面直接alert, 那number的值肯定不会变化
<script language="javascript"> 
var number=-1;
window.onload = function()//文档加载结束以后才执行
{
var height = 100;
number = height;
}
alert(number);//第一个执行,所以number没变化
function a(){
alert(number);//这里number就已经在onload函数里被重新赋值了
}
</script> 
<input type="button" value="a" onclick="a()"/>

#6


你的代码肯定可以给number变量赋值,是不是你获取的时机不对,window.onload是所有资源加载完毕后才执行的,如果资源没加载完毕你就是用脚本获取number变量的值当然获取不到

#7


alert(number);//第一个执行,所以number没变化
因为这句话执行的比  window.onload早。 所以值没有改变

#8


引用 5 楼 Ragin 的回复:
Quote: 引用 4 楼 u012752501 的回复:

你在哪里调用number的 
window.onload函数是文档加载完以后才执行的,如果你在window.onload下面直接alert, 那number的值肯定不会变化
<script language="javascript"> 
var number=-1;
window.onload = function()//文档加载结束以后才执行
{
var height = 100;
number = height;
}
alert(number);//第一个执行,所以number没变化
function a(){
alert(number);//这里number就已经在onload函数里被重新赋值了
}
</script> 
<input type="button" value="a" onclick="a()"/>


按照你的写法试了下。最后输出的值为空 undefined 

#9


引用 8 楼 u012752501 的回复:

开F12调试下。

#10


Quote: 引用 9 楼 Ragin 的回复:

是的 开的F12  我是Vs2008

#11


直接在function里面写  页面刚运行的时候就接收这个number   然后在下面就可以获取了

#12


debugger height= document.getElementById("wflowlistgrid").offsetHeight; 看一眼这个值

#13


我的值也是空