2012-09-23 73 views
0

我有两个html页面,这两个javascript函数。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); 
} 

在CONSOL e,在ex2()函数中,我得到undefined。我在这里做错了什么?

回答

2

您将进入另一个页面,您的abc变量未定义。

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

一种解决方案是使用localStorage的:

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

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

对不起,我错误地键入了该变种。即使没有这个变种也行不通。 –

+0

有多个错误。请参阅最重要的编辑。 –

+0

非常感谢你,被困在这一段时间,localStorage解决了这个问题:) –

1

你是不是想从页面传递值页面(page1.html - > page2.html)?如果是这样,它不会工作,因为脚本是每个页面加载“重置”...

您可能使用cookie或localStorage来传递变量 - cookies更适合交叉浏览器(本地存储将无法工作旧版浏览器,Firefox会询问用户的权限)。

1

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

旧的变量丢失。您需要将它们转移到URL中的新页面,或通过Cookie或存储。

0

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