2011-10-11 56 views
0

我有兩個文件screen.html和db_fun.js。
我在剛開始的時候聲明的變量如下:
在不同的HTML文件中聲明在JAVASCRIPT中聲明的變量

db_fun.js
變數名稱= 「ABC」;

現在我嘗試訪問該變量在screen.html文件如下

screen.html

<html> 
<body> 
    <form name = "screen" action = "db_fun.js"> 
     <p> <script>document.write(name);</script> </p> 
    </form> 
</body> 
<script src="db_fun.js" type="text/javascript" /> 
</html> 

未打印nethn。是嗎?

+0

將表單的動作設置爲腳本有什麼意義? –

回答

0

它添加到頭部

<script type="text/javascript" src="db_fun.js"></script> 
0

那是因爲你在頁面頁腳中插入你的JavaScript。您必須先將您的JavaScript文件加載到您的網站(例如頭部),然後使用您的變量。

0

我認爲你應該移動

<script src="db_fun.js" type="text/javascript" /> 

在頁面的頭部。即在document.write之前。 因爲在您嘗試打印「名稱」的那一刻,該變量仍未創建。另外,我認爲使用document.write將內容添加到頁面並不是一個好習慣。嘗試使用jQuery或其他庫。例如:

$(document).ready(function() { 
    $("p").html(name); 
}); 
+0

ohk,做到了。但事情是,如果我正在採取數組說,假設 ** var arr = new Array(20); ** 和我聲明它作爲我的.js文件中的第一行,然後在函數中,我分配值,現在如果我嘗試訪問那些函數外的值,它說「未定義」。是嗎?不是我聲明爲全局的數組? – wOlVeRiNe

+0

@wOlVeRi您上面的評論,現在請解釋什麼在地球上試圖做或完成? – david

+0

以下代碼適用於我:var arr = []; \t \t \t功能測試(){ \t \t \t \t arr.push(20); \t \t \t \t arr.push(30); \t \t \t \t arr.push(40); \t \t \t} \t \t \t test(); \t \t \t console.log(arr); //打印出來[20,30,40] – Krasimir