js選擇并轉(zhuǎn)移導(dǎo)航菜單示例代碼
實(shí)現(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>
實(shí)現(xiàn)菜單導(dǎo)航
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() {};
在窗口加載時(shí),調(diào)用initForm()函數(shù)。下一行需要解釋一下,因?yàn)樗翘幚砟承g覽器的古怪行為的變通方法。
當(dāng)窗口卸載時(shí)(即關(guān)閉窗口或者瀏覽器轉(zhuǎn)到另一個(gè)網(wǎng)址),我們調(diào)用一個(gè)匿名函數(shù)(anonymousfunction),即沒有名稱的函數(shù)。在這個(gè)示例中,這個(gè)函數(shù)不但沒有名稱,而且根本不做任何事情。提供這個(gè)函數(shù)是因?yàn)楸仨殞nunload設(shè)置為某種東西,否則,當(dāng)單擊瀏覽器的back按鈕時(shí),就不會(huì)觸發(fā)onload事件,因?yàn)樵谀承g覽器(比如Firefox和Safari)中頁面會(huì)被緩存。讓onunload執(zhí)行任何操作,就會(huì)使頁面不被緩存,因此當(dāng)用戶后退時(shí),會(huì)發(fā)生onload事件。
匿名是指在function和()之間沒有名稱。這是觸發(fā)onunload但不讓它做任何事情的最簡單的方法。與任何函數(shù)中一樣,花括號(hào)包含函數(shù)的內(nèi)容。這里的花括號(hào)是空的,因?yàn)檫@個(gè)函數(shù)不做任何事情。
2.
document.getElementById("newLocation").selectedIndex = 0;
document.getElementById("newLocation").onchange = jumpPage;
在initForm()函數(shù)中,第一行獲得HTML頁面上的菜單(它的id為newLocation),并且將它的selectedIndex屬性設(shè)置為零,這會(huì)使它顯示Select a topic。
第二行讓腳本在菜單選擇發(fā)生改變時(shí),調(diào)用jumpPage()函數(shù)。
3.
var newLoc = document.getElementById("newLocation");
在jumpPage()函數(shù)中,newLoc變量查找訪問者在菜單中選擇的值。
4.
var newPage = newLoc.options[newLoc.selectedIndex].value;
從方括號(hào)中的代碼開始,向外依次分析。newLoc.selectedIndex是一個(gè)從0~5的數(shù)字(因?yàn)橛?
個(gè)菜單選項(xiàng)。記住JavaScript的編號(hào)常常是基于零的)。得到這個(gè)數(shù)字之后,接下來獲得對(duì)應(yīng)的菜單項(xiàng)
的值,這就是我們希望跳轉(zhuǎn)到的網(wǎng)頁的名稱。然后,將結(jié)果賦值給變量newPage。
5.
if (newPage != "") {
window.location = newPage;
這個(gè)條件語句首先檢查newPage是否非空。換句話說,如果newPage有一個(gè)值,那么讓窗口轉(zhuǎn)到
選擇的菜單項(xiàng)所指定的URL。
- vuejs實(shí)現(xiàn)下拉框菜單選擇
- JS實(shí)現(xiàn)點(diǎn)擊下拉菜單把選擇的內(nèi)容同步到input輸入框內(nèi)的實(shí)例
- javascript實(shí)現(xiàn)日期三級(jí)聯(lián)動(dòng)下拉框選擇菜單
- 使用Javascript實(shí)現(xiàn)選擇下拉菜單互移并排序
- 基于javascript實(shí)現(xiàn)全國省市二級(jí)聯(lián)動(dòng)下拉選擇菜單
- js模擬淘寶網(wǎng)的多級(jí)選擇菜單實(shí)現(xiàn)方法
- js實(shí)現(xiàn)的全國省市二級(jí)聯(lián)動(dòng)下拉選擇菜單完整實(shí)例
- 純JSP+DWR實(shí)現(xiàn)三級(jí)聯(lián)動(dòng)下拉選擇菜單實(shí)現(xiàn)技巧
- javascript 三級(jí)下拉選擇菜單Levels對(duì)象
- js實(shí)現(xiàn)圓形菜單選擇器
相關(guān)文章
Bootstrap媒體對(duì)象學(xué)習(xí)使用
這篇文章主要為大家詳細(xì)介紹了Bootstrap媒體對(duì)象的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Javascript前端UI框架Kit使用指南之kitjs事件管理
本文詳細(xì)介紹了Kitjs的事件管理功能,包括普通的Dom事件、Kit如何解決問題、代碼解析、注銷事件等。需要的朋友可以參考下。2014-11-11Three.js實(shí)現(xiàn)3D機(jī)房效果
這篇文章主要為大家詳細(xì)介紹了Three.js實(shí)現(xiàn)3D機(jī)房效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12javaScript合并對(duì)象的多種方式及知識(shí)擴(kuò)展
眾所周知JavaScript中有多種方法可以合并對(duì)象,下面這篇文章主要給大家介紹了關(guān)于javaScript合并對(duì)象的多種方式及知識(shí)擴(kuò)展,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02小程序圖片長按識(shí)別功能的實(shí)現(xiàn)方法
這篇文章主要介紹了小程序圖片長按識(shí)別功能的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08