淺析JavaScript中的平穩(wěn)退化(graceful degradation)
所謂平穩(wěn)退化,就是指可以讓訪問者在瀏覽器不支持javascript或者禁用了JavaScript的時候依舊可以順利的瀏覽你的網(wǎng)頁;即,雖然有些功能無法使用,但基本操作依舊可以順利完成。
這里用在新窗口打開一個鏈接作為例子,我們知道js打開新窗口的方法:
window.open(url,name,features)
在這里,url是要打開的網(wǎng)頁的url地址,name是新窗口的名字,最后的features是一系列的參數(shù)
好,現(xiàn)在寫一個簡單的函數(shù):
function openwindow(winUrl){
window.open(winUrl,"new window","width = 320 , height = 480")
}
然后可以使用偽協(xié)議調(diào)用該函數(shù):
<a href = "javascript:openwindow('http://www.google.com');">google</a>
這樣的做法,可以在支持“JavaScript:”偽協(xié)議的瀏覽器里正常運行,不支持JavaScript的瀏覽器會嘗試打開鏈接但失敗,而在禁用了JavaScript功能的瀏覽器里什么都不會做;
另一種做法是使用onclick:
<a href = "#" onclick = "openwindow('http://www.google.com');return false;">google</a>
在這里"#"代表著一個空鏈接,加入了return false之后,<a>標簽不會跳轉(zhuǎn)到href指定的鏈接,在這里實際工作都在onclick里執(zhí)行。但是這樣做在禁用了JavaScript功能的瀏覽器里依舊無法打開。
那么怎樣可以解決這個問題呢,其實只需要:
<a onclick = "openwindow(http://www.google.com);return false;">google</a>
或者:
<a onclick = "openwindow(this.href);return false;">google</a>
我們使用onclick去執(zhí)行JavaScript的函數(shù),但是在href屬性里也確實填寫了url,這樣,如果是在禁用了JavaScript 的瀏覽器里,雖然不能打開一個新窗口,在新窗口里打開連接,但是至少是可以跳轉(zhuǎn)到目標網(wǎng)頁的(當前頁面);
最后說一下為什么要使用平穩(wěn)退化,可能會有這樣的想法:讓那些禁用了或者不支持JavaScript的瀏覽器順利訪問你的網(wǎng)站有那么重要嗎,畢竟現(xiàn)在使用不支持JavaScript或者總是禁用JavaScript功能的用戶應(yīng)該是已經(jīng)非常少的了。
確實這樣的用戶已經(jīng)非常少了,但是它很重要;
這個用戶可能是一個搜索機器人——一種自動化程序,他們?yōu)g覽各個網(wǎng)頁的目的只是為了加入到搜索引擎的數(shù)據(jù)庫里,各大搜索引擎都有類似的程序,但是大多數(shù)的搜索機器人無法理解JavaScript代碼,所以如果你的網(wǎng)頁無法平穩(wěn)退化,會很大程度上打擊其在搜索引擎上的排名。
總結(jié)
以上所述是小編給大家介紹的JavaScript中的平穩(wěn)退化(graceful degradation),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
js中訪問html中iframe的文檔對象的代碼[IE6,IE7,IE8,FF]
W3C的標準告訴我們,可以通過Dom對象的contentDocument屬性來返回文檔對象。2011-01-01
JS數(shù)組操作大全對象數(shù)組根據(jù)某個相同的字段分組
這篇文章主要介紹了JS數(shù)組操作大全對象數(shù)組根據(jù)某個相同的字段分組,需要注意的是,在開發(fā)過程這種數(shù)組的處理函數(shù),應(yīng)當被編寫到項目的公共工具函數(shù)庫中全局調(diào)用,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-11-11
前端使用Compressor.js實現(xiàn)圖片壓縮上傳的詳細過程
Compressor.js一個JavaScript圖像壓縮器,使用瀏覽器的原生canvas.toBlob API來執(zhí)行壓縮工作,這篇文章主要給大家介紹了關(guān)于前端使用Compressor.js實現(xiàn)圖片壓縮上傳的詳細過程,需要的朋友可以參考下2024-07-07
JavaScript滿天星導(dǎo)航欄實現(xiàn)方法
本篇文章給大家分享了JavaScript滿天星導(dǎo)航欄實現(xiàn)方法,以前也介紹過很多關(guān)于特效導(dǎo)航的制作方法,對此有興趣的朋友參考學(xué)習(xí)下。2018-03-03
js操作Xml(向服務(wù)器發(fā)送Xml,處理服務(wù)器返回的Xml)(IE下有效)
js操作Xml(向服務(wù)器發(fā)送Xml,處理服務(wù)器返回的Xml)(暫只IE下有效)2009-01-01

