2012-09-23 94 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。該變量的範圍在頁面內是有限的,不能被重定向到其他頁面。