0

我有两个 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

4 回答 4

2

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

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

一种解决方案是使用 localStorage :

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

}
function ex2() {
    console.log(localStorage['abc']);
}
于 2012-09-23T18:56:13.697 回答
1

您是否尝试在页面之间传递值(page1.html -> page2.html)?如果是这样,它将无法正常工作,因为每次页面加载都会“重置”脚本......

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

于 2012-09-23T18:59:16.057 回答
1

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

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

于 2012-09-23T18:59:20.487 回答
0

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

于 2012-09-23T19:01:16.570 回答