我有两个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()
。我在这里做错了什么?
答案 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
。变量的范围仅限于页面内,不能重定向到其他页面。