javascript变量再赋值
十分不解,javascript无法二次赋值么?请高手帮忙看看:<script>vari=1functiondd(i){{alert(i)vari=0}setTimeout...
十分不解,javascript无法二次赋值么?
请高手帮忙看看:
<script>
var i=1
function dd(i)
{
{
alert(i)
var i=0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
这个I的值却始终是1.
有什么办法让它的值转为0么?
程序是由VB赋值给A.HTML页面,然后再由A.HTML页面赋值给B.HTML,A中有个IFRAME,包含着B.HTML.
* A页面和B页面都在VB的WebBrowser1内,
Private Sub Timer1_Timer()
WebBrowser1.Document.parentWindow.execScript "gxnbdhs=""" & gxnbdhs & """;", "javascript"
End Sub
* 现在VB中的gxnbdhs是在不断变化的.并且A中取VB的变量gxnbdhs是可以实现的.
* B页面中取A页面值的办法是:var gxnbdhs=window.parent.gxnbdhs;
最终目的是实现B.HTML中的gxnbdhs与VB中的gxnbdhs同步变化.
但实测时B中的gxnbdhs不能变化,必须刷新一次才能改变gxnbdhs.这个难住了.
请问,JavaScript有没有办法解决此问题?
非常感谢. 展开
请高手帮忙看看:
<script>
var i=1
function dd(i)
{
{
alert(i)
var i=0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
这个I的值却始终是1.
有什么办法让它的值转为0么?
程序是由VB赋值给A.HTML页面,然后再由A.HTML页面赋值给B.HTML,A中有个IFRAME,包含着B.HTML.
* A页面和B页面都在VB的WebBrowser1内,
Private Sub Timer1_Timer()
WebBrowser1.Document.parentWindow.execScript "gxnbdhs=""" & gxnbdhs & """;", "javascript"
End Sub
* 现在VB中的gxnbdhs是在不断变化的.并且A中取VB的变量gxnbdhs是可以实现的.
* B页面中取A页面值的办法是:var gxnbdhs=window.parent.gxnbdhs;
最终目的是实现B.HTML中的gxnbdhs与VB中的gxnbdhs同步变化.
但实测时B中的gxnbdhs不能变化,必须刷新一次才能改变gxnbdhs.这个难住了.
请问,JavaScript有没有办法解决此问题?
非常感谢. 展开
展开全部
楼上两位不要误人子弟,什么叫不能再定义了?
作用域问题!看下面的注释吧
-----------------------
<script>
var i=1; //全局变量
function dd(i)
{
{
alert(i); //这里弹出的是全局变量i,所以是1
var i=0; //这里又定义了一个局部变量i,等于0,且每次执行都重新定义这个局部变量,并等于0;这个i的作用域范围就是在dd()函数体内,每次dd()函数执行完自动销毁
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
--------------------
要i等于0,在你的基础上有两个办法:
1:修改全局变量i
<script>
var i=1
function dd(i)
{
{
alert(i)
window.i=0 //这里修改的是第一行定义的那个i,第一次弹出1,以后弹出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
2:
<script>
var i=1
function dd(i)
{
{
var i=0
alert(i) //两句对调,但这个i就成了dd()函数体内的局部变量,所以一直弹出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
作用域问题!看下面的注释吧
-----------------------
<script>
var i=1; //全局变量
function dd(i)
{
{
alert(i); //这里弹出的是全局变量i,所以是1
var i=0; //这里又定义了一个局部变量i,等于0,且每次执行都重新定义这个局部变量,并等于0;这个i的作用域范围就是在dd()函数体内,每次dd()函数执行完自动销毁
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
--------------------
要i等于0,在你的基础上有两个办法:
1:修改全局变量i
<script>
var i=1
function dd(i)
{
{
alert(i)
window.i=0 //这里修改的是第一行定义的那个i,第一次弹出1,以后弹出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
2:
<script>
var i=1
function dd(i)
{
{
var i=0
alert(i) //两句对调,但这个i就成了dd()函数体内的局部变量,所以一直弹出0
}setTimeout('dd(i)',1500)
}
setTimeout('dd(i)',1500)
</script>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的说得很对。·····
汗,变量可以更改值多次,但是声明只能声明一次,
比如int i; 这里i可以多次更改值,比如:i=1;i=2;i=3;等等
但是int只能用一次,也就是说写了一次int i;就不能再写1次int i了,
因为同样一个变量不能两次声明····
int i;
int i;这样是不允许的
汗,变量可以更改值多次,但是声明只能声明一次,
比如int i; 这里i可以多次更改值,比如:i=1;i=2;i=3;等等
但是int只能用一次,也就是说写了一次int i;就不能再写1次int i了,
因为同样一个变量不能两次声明····
int i;
int i;这样是不允许的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
始终是1,是因为你定义的全局变量,在alert()方法的时候被输出,所以你要仔细想想自己想得到的结果然后去定义局部或者全局变量,这个3楼的说的没错,还有就是你想在javascript中不刷新页面实现同步是不可能的,你可以用Ajax实现同步处理~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题很简单
你已经定义了i
var i
就不能再定义i
你看看你的代码
总共写了2次
var i
你已经定义了i
var i
就不能再定义i
你看看你的代码
总共写了2次
var i
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询