0

2 つの JavaScript 機能を備えた 2 つの HTML ページがあります。

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 変数が定義されていない別のページに移動します。

変数をあるページから別のページに永続的にレンダリングする必要があります。

1 つの解決策は、 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 に答える