js選擇并轉移導航菜單示例代碼
實現(xiàn)html界面
<!DOCTYPE html> <html> <head> <title>Select and Go Navigation</title> <script src="script01.js"></script> <link rel="stylesheet" href="script01.css" rel="external nofollow" > </head> <body> <form action="gotoLocation.cgi" class="centered"> <select id="newLocation"> <option selected>Select a topic</option> <option value="script06.html">Cross-checking fields</option> <option value="script07.html">Working with radio buttons</option> <option value="script08.html">Setting one field with another</option> <option value="script09.html">Validating Zip codes</option> <option value="script10.html">Validating email addresses</option> </select> <noscript> <input type="submit" value="Go There!"> </noscript> </form> </body> </html>
實現(xiàn)菜單導航
window.onload = initForm;
window.onunload = function() {};
function initForm() {
document.getElementById("newLocation").selectedIndex = 0;
document.getElementById("newLocation").onchange = jumpPage;
}
function jumpPage() {
var newLoc = document.getElementById ("newLocation");
var newPage = newLoc.options [newLoc.selectedIndex].value;
if (newPage != "") {
window.location = newPage;
}
}
下面是源碼分析
1.
window.onload = initForm;
window.onunload = function() {};
在窗口加載時,調用initForm()函數(shù)。下一行需要解釋一下,因為它是處理某些瀏覽器的古怪行為的變通方法。
當窗口卸載時(即關閉窗口或者瀏覽器轉到另一個網址),我們調用一個匿名函數(shù)(anonymousfunction),即沒有名稱的函數(shù)。在這個示例中,這個函數(shù)不但沒有名稱,而且根本不做任何事情。提供這個函數(shù)是因為必須將onunload設置為某種東西,否則,當單擊瀏覽器的back按鈕時,就不會觸發(fā)onload事件,因為在某些瀏覽器(比如Firefox和Safari)中頁面會被緩存。讓onunload執(zhí)行任何操作,就會使頁面不被緩存,因此當用戶后退時,會發(fā)生onload事件。
匿名是指在function和()之間沒有名稱。這是觸發(fā)onunload但不讓它做任何事情的最簡單的方法。與任何函數(shù)中一樣,花括號包含函數(shù)的內容。這里的花括號是空的,因為這個函數(shù)不做任何事情。
2.
document.getElementById("newLocation").selectedIndex = 0;
document.getElementById("newLocation").onchange = jumpPage;
在initForm()函數(shù)中,第一行獲得HTML頁面上的菜單(它的id為newLocation),并且將它的selectedIndex屬性設置為零,這會使它顯示Select a topic。
第二行讓腳本在菜單選擇發(fā)生改變時,調用jumpPage()函數(shù)。
3.
var newLoc = document.getElementById("newLocation");
在jumpPage()函數(shù)中,newLoc變量查找訪問者在菜單中選擇的值。
4.
var newPage = newLoc.options[newLoc.selectedIndex].value;
從方括號中的代碼開始,向外依次分析。newLoc.selectedIndex是一個從0~5的數(shù)字(因為有6
個菜單選項。記住JavaScript的編號常常是基于零的)。得到這個數(shù)字之后,接下來獲得對應的菜單項
的值,這就是我們希望跳轉到的網頁的名稱。然后,將結果賦值給變量newPage。
5.
if (newPage != "") {
window.location = newPage;
這個條件語句首先檢查newPage是否非空。換句話說,如果newPage有一個值,那么讓窗口轉到
選擇的菜單項所指定的URL。
- vuejs實現(xiàn)下拉框菜單選擇
- JS實現(xiàn)點擊下拉菜單把選擇的內容同步到input輸入框內的實例
- javascript實現(xiàn)日期三級聯(lián)動下拉框選擇菜單
- 使用Javascript實現(xiàn)選擇下拉菜單互移并排序
- 基于javascript實現(xiàn)全國省市二級聯(lián)動下拉選擇菜單
- js模擬淘寶網的多級選擇菜單實現(xiàn)方法
- js實現(xiàn)的全國省市二級聯(lián)動下拉選擇菜單完整實例
- 純JSP+DWR實現(xiàn)三級聯(lián)動下拉選擇菜單實現(xiàn)技巧
- javascript 三級下拉選擇菜單Levels對象
- js實現(xiàn)圓形菜單選擇器
相關文章
詳解如何使用JavaScript中Promise類實現(xiàn)并發(fā)任務控制
在JavaScript中,Promise是一種用于管理異步操作的強大工具,但是,有時候需要更高級的控制,以限制同時執(zhí)行的任務數(shù)量,以避免系統(tǒng)資源超負荷,本文將深入探討JavaScript中的并發(fā)任務控制,并介紹如何創(chuàng)建一個自定義的Promise類——ConcurrentPromise2023-08-08
JavaScript Title、alt提示(Tips)實現(xiàn)源碼解讀
我們知道給某些HTML標簽加上title屬性后,這個標簽對象在瀏覽的時候,鼠標移上去就會有一個小提示框出來,并顯示title定義的內容。2010-12-12
微信小程序實現(xiàn)運動步數(shù)排行功能(可刪除)
這篇文章主要介紹了微信小程序實現(xiàn)運動步數(shù)排行功能(可刪除),實現(xiàn)代碼也很簡單,需要的朋友可以參考下2018-07-07

