2013-03-11 37 views
-1

我正在建立一個動態網站,提供旅遊方向,但我是JavaScript新手,我不確定編碼的最佳方式。如何構建全局變量的JavaScript/HTML網站?

目前,我通過爲每個元素分開HTML頁面,然後將這些頁面加載到主頁面來加載網站的不同部分(頁眉,主頁,頁腳)。例如,在主頁上,我有:

<body onload="initialize()"> 
    <div id="header"></div> 
    <div id="main"></div> 
    <div id="footer"></div> 
</body> 

而且在導入的JavaScript腳本我有:

function initialize() 
{ 
    $('#header').load('header.html'); 
    $('#main').load('main.html'); 
    $('#footer').load('footer.html'); 
} 

的問題是,我想所有這三個進口頁面來訪問全球變量和函數在一個JavaScript文件中,我將存儲路徑信息,座標等。具體來說,我遇到了一些問題,我無法從已加載到header.html頁面的主JS腳本中調用函數父頁面。

這樣做的最好方法是什麼?任何幫助深表感謝!

+0

你爲什麼不使用php這樣的服務器端語言? – 2013-03-11 02:03:39

+0

你能告訴我們更多的代碼嗎?具體來說,您無法訪問哪些功能以及它們在哪裏聲明?你在哪裏打電話給他們,你是如何嘗試這樣做的? – 2013-03-11 02:06:48

回答

2

你應該有一個js文件與所有的客戶端代碼,幷包括與<script>標籤頁面上。然後使用$(document).ready()來運行您的初始化。您也可以在這裏定義全局變量並分配它們,以便稍後訪問它們。

在你的JavaScript包括將是這樣的東西;

var $header, $main, $footer 

function initialize() 
{ 
    $header.load('header.html'); 
    $main.load('main.html'); 
    $footer.load('footer.html'); 
} 

$(document).ready(function() { 
    $header = $('#header'); 
    $main = $('#main'); 
    $footer = $('#footer'); 

    initialize(); 
}); 

請注意您創建的全局變量的數量。 11 JavaScript mistakes you're making

+0

在這種情況下,我將如何(例如)在header.html中打印全局變量?不是特別的打印功能,但我如何從一個加載的頁面訪問全局函數/變量? – Stephen 2013-03-11 02:43:39

+0

如果您想要將變量的值分配給標題中某個HTML節點的內容,請在jQuery中找到具有選擇器的節點,並將該變量的值應用於'.text()',例如。 'var myVar ='要插入的文本'; $('#myHeaderNodeId')。text(myVar);'你想從加載的頁面調用什麼?它是否包含JavaScript?分離所有文件的目的是什麼? – 2013-03-11 02:47:43

+0

這個想法是,我的應用程序中有一系列不同的旅行步驟 - 走到巴士站,在巴士站等候巴士方向。我開始認爲我應該只有一個單獨的頁面,它具有由JavaScript根據當前旅程階段更新的單獨的div類。我認爲爲每個核心頁面分開頁面會更好(忽略頁眉和頁腳),以便更新每個頁面上的方向。 – Stephen 2013-03-11 03:02:31

0

你試圖把它外面的功能,使其全球...

var <variable name> 
function <function_name>{ 

<variable name> 

} 
0
在主頁

<script type="text/javascript"> 
    variable = <value>; //variable used with var keyword is considered as global variable 
</script>