Javascript全局变量值未更新

时间:2012-09-23 18:55:21

标签: javascript

我有两个html页面,两个javascript函数。

page1.html

<a href="page2.html" onclick="ex1()">link1</a>

page2.html

<a href="#" onclick="ex2()">link2</a>

jscript1.js

var abc;
function ex1() {
    abc='some text';
    console.log(abc);

}
function ex2() {
    console.log(abc);
}

在控制台中,我在undefined函数内部时收到ex2()。我在这里做错了什么?

4 个答案:

答案 0 :(得分:2)

您将转到另一个页面,其中未定义您的abc变量。

您需要将变量持久化从一个页面呈现到另一个页面。

一种解决方案是使用localStorage:

function ex1() {
    localStorage['abc']='some text';
    console.log(localStorage['abc']);

}
function ex2() {
    console.log(localStorage['abc']);
}

答案 1 :(得分:1)

您是否尝试将值从页面传递到页面(page1.html - &gt; page2.html)?如果是这样,它就不会起作用,因为脚本会在每次加载页面时“重置”......

你可以使用cookie或localStorage来传递变量 - cookies更加友好交叉浏览器(本地存储在旧版浏览器中不起作用,Firefox会询问用户的权限)。

答案 2 :(得分:1)

您正在更改页面,这意味着您正在加载新的执行环境。

旧的变量丢失了。您需要将它们传输到URL中的新页面,或通过cookie或存储。

答案 3 :(得分:0)

如果它们不包含在常见的html或jsp或php中,很快就会出现。然后再次启动变量abc。变量的范围仅限于页面内,不能重定向到其他页面。