我在global.js文件中声明了javascript全局变量,例如:
var glbValue;将全局变量glbValue的值从first.html中计算出来,例如:
<script type="text/javascript" src="global.js"></script>
<script type="text/javascript">
function onBtnSubmit()
{
glbValue=123;
}
</script>并从glbValue second.html访问全局变量:
<script type="text/javascript" src="global.js"></script>
<script type="text/javascript">
function onBtnClick()
{
alert(glbValue);
}
</script>它给我的输出未定义的为123,为什么?
发布于 2014-03-18 08:55:51
尝试使用本地存储:
first.html:
localStorage.setItem("glbValue", "123");second.html:
alert(localStorage.getItem("glbValue"));发布于 2014-03-18 08:59:27
当一个页面加载时,它的所有脚本文件都在一个新的上下文中执行。浏览器不会“记住”您在最后一页中所做的事情。如果要在页面之间共享变量,可以使用cookie,或者更好的是使用localStorage或sessionStorage。
localStorage。sessionStorage。我认为,在你的情况下,2%的解决方案是最好的:
first.html
<script type="text/javascript">
function onBtnSubmit()
{
sessionStorage.setItem('gblValue', 123);
}
</script>second.html
<script type="text/javascript">
function onBtnClick()
{
alert(sessionStorage.getItem('gblValue'));
}
</script>你不再需要那个全局变量了。这个解决方案的唯一问题是IE8和更低的版本不支持这一点,但是有很好的填充方法可以透明地使用cookies。
https://stackoverflow.com/questions/22474239
复制相似问题