javascript的漸進(jìn)增強(qiáng)與平穩(wěn)退化淺談
在google.com.hk的左上角,有一個(gè)更多的鏈接,它具有一個(gè)目標(biāo)地址,但是當(dāng)我們點(diǎn)擊時(shí),大多數(shù)情況發(fā)現(xiàn)的是彈出一個(gè)下拉列表供用戶選擇(這是一種典型的漸進(jìn)增強(qiáng)形式)。怎么理解?——如果用戶的瀏覽器支持javascript,那么就可以享受到這種快速導(dǎo)航的服務(wù)功能。
現(xiàn)在,請(qǐng)你禁用的你的瀏覽器的javascript功能(不會(huì)禁用猛擊這里),再次訪問google.com.hk,再次點(diǎn)擊更多時(shí),發(fā)生了什么?是的,沒有看到下拉列表,而打開了一個(gè)新頁面。(這是一種典型的平穩(wěn)退化)。怎么理解?——如果用戶的瀏覽器不支持javascript,用戶仍然能夠訪問我的網(wǎng)站。
如何實(shí)現(xiàn)類似google的這一功能?
<script type="text/javascript">
function displayMenu() {
//顯示導(dǎo)航列表;
}
</script>
<a href="目標(biāo)頁面" onclick="displayMenu(); return false;">更多»</a>
解釋:displayMenu()是一個(gè)顯示導(dǎo)航列表的功能函數(shù)(這里省略它的實(shí)現(xiàn),因?yàn)橛懻摰牟⒉皇沁@個(gè))
onclick指定了鏈接的點(diǎn)擊事件。
return false : 取消了瀏覽器的默認(rèn)行為(這樣就執(zhí)行了displayMenu(),而不發(fā)生頁面的跳轉(zhuǎn)了),這個(gè)不可省略(當(dāng)然你可省略試試看,有助于你的理解)
現(xiàn)在我們來看:如果你的瀏覽器支持javascript時(shí),那么onclick后的代碼肯定會(huì)被執(zhí)行。否則,onclick后的代碼不會(huì)被執(zhí)行,那就會(huì)發(fā)生頁面的跳轉(zhuǎn)。這樣不管是否支持javascript,用戶都能順利的訪問我的網(wǎng)站。
下面是另一個(gè)類似的例子,它在新窗口中打開一個(gè)鏈接,但是我們并沒有指定target,如果用戶的瀏覽器不支持javascript,它將在當(dāng)前頁面中打開鏈接,如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>在新窗口打開鏈接的另一種方式</title>
<script type="text/javascript">
function popup(url) { window.open(url); }
</script>
</head>
<body>
<ul>
<li><a onclick="popup(this.href); return false;">百度</a></li>
<li><a onclick="popup(this.href); return false;">google</a></li>
</ul>
</body>
</html>
相關(guān)文章
js實(shí)現(xiàn)左側(cè)網(wǎng)頁tab滑動(dòng)門效果代碼
這篇文章主要介紹了js實(shí)現(xiàn)左側(cè)網(wǎng)頁tab滑動(dòng)門效果代碼,涉及JavaScript頁面元素的遍歷及元素屬性動(dòng)態(tài)切換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09JS前端實(shí)現(xiàn)留言板功能的方法總結(jié)
留言板的主要使用場(chǎng)景是為用戶提供一個(gè)在網(wǎng)站或應(yīng)用上留言的平臺(tái),本文主要為大家介紹了四個(gè)常見的前端實(shí)現(xiàn)留言板功能的方法,希望對(duì)大家有所幫助2023-11-11JS實(shí)現(xiàn)跟隨鼠標(biāo)閃爍轉(zhuǎn)動(dòng)色塊的方法
這篇文章主要介紹了JS實(shí)現(xiàn)跟隨鼠標(biāo)閃爍轉(zhuǎn)動(dòng)色塊的方法,涉及javascript操作html元素及css樣式的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02如何使用less實(shí)現(xiàn)隨機(jī)下雪動(dòng)畫詳解
這篇文章主要給大家介紹了關(guān)于如何使用less實(shí)現(xiàn)隨機(jī)下雪動(dòng)畫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01JavaScript兼容性總結(jié)之獲取非行間樣式案例
這篇文章主要介紹了JavaScript兼容性總結(jié)之獲取非行間樣式的相關(guān)資料,需要的朋友可以參考下2016-08-08使用js原生實(shí)現(xiàn)年份輪播選擇效果實(shí)例
這篇文章主要給大家介紹了關(guān)于如何使用js原生實(shí)現(xiàn)年份輪播選擇效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01