DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> js選擇並轉移導航菜單示例代碼
js選擇並轉移導航菜單示例代碼
編輯:JavaScript綜合知識     

 實現html界面

01 <!DOCTYPE html> 02 <html> 03 <head> 04 <title>Select and Go Navigation</title> 05 <script src="script01.js"></script> 06 <link rel="stylesheet" href="script01.css" rel="external nofollow" > 07 </head> 08 <body> 09 <form action="gotoLocation.cgi" class="centered"> 10 <select id="newLocation"> 11 <option selected>Select a topic</option> 12 <option value="script06.html">Cross-checking fields</option> 13 <option value="script07.html">Working with radio buttons</option> 14 <option value="script08.html">Setting one field with another</option> 15 <option value="script09.html">Validating Zip codes</option> 16 <option value="script10.html">Validating email addresses</option> 17 </select> 18 <noscript> 19 <input type="submit" value="Go There!"> 20 </noscript> 21 </form> 22 </body> 23 </html>

實現菜單導航

01 window.onload = initForm; 02 window.onunload = function() {}; 03 function initForm() { 04 document.getElementById("newLocation").selectedIndex = 0; 05 document.getElementById("newLocation").onchange = jumpPage; 06 } 07 function jumpPage() { 08 var newLoc = document.getElementById ("newLocation"); 09 var newPage = newLoc.options [newLoc.selectedIndex].value; 10 if (newPage != "") { 11 window.location = newPage; 12 } 13 }

下面是源碼分析
1.

window.onload = initForm;
window.onunload = function() {};
在窗口加載時,調用initForm()函數。下一行需要解釋一下,因為它是處理某些浏覽器的古怪行為的變通方法。

當窗口卸載時(即關閉窗口或者浏覽器轉到另一個網址),我們調用一個匿名函數(anonymousfunction),即沒有名稱的函數。在這個示例中,這個函數不但沒有名稱,而且根本不做任何事情。提供這個函數是因為必須將onunload設置為某種東西,否則,當單擊浏覽器的back按鈕時,就不會觸發onload事件,因為在某些浏覽器(比如Firefox和Safari)中頁面會被緩存。讓onunload執行任何操作,就會使頁面不被緩存,因此當用戶後退時,會發生onload事件。

匿名是指在function和()之間沒有名稱。這是觸發onunload但不讓它做任何事情的最簡單的方法。與任何函數中一樣,花括號包含函數的內容。這裡的花括號是空的,因為這個函數不做任何事情。

2.

document.getElementById("newLocation").selectedIndex = 0;
document.getElementById("newLocation").onchange = jumpPage;
在initForm()函數中,第一行獲得HTML頁面上的菜單(它的id為newLocation),並且將它的selectedIndex屬性設置為零,這會使它顯示Select a topic。
第二行讓腳本在菜單選擇發生改變時,調用jumpPage()函數。

3.

var newLoc = document.getElementById("newLocation");
在jumpPage()函數中,newLoc變量查找訪問者在菜單中選擇的值。

4.

var newPage = newLoc.options[newLoc.selectedIndex].value;
從方括號中的代碼開始,向外依次分析。newLoc.selectedIndex是一個從0~5的數字(因為有6
個菜單選項。記住JavaScript的編號常常是基於零的)。得到這個數字之後,接下來獲得對應的菜單項
的值,這就是我們希望跳轉到的網頁的名稱。然後,將結果賦值給變量newPage。

5.

if (newPage != "") {
window.location = newPage;
這個條件語句首先檢查newPage是否非空。換句話說,如果newPage有一個值,那麼讓窗口轉到
選擇的菜單項所指定的URL。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved