淺析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>標簽不會跳轉到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 的瀏覽器里,雖然不能打開一個新窗口,在新窗口里打開連接,但是至少是可以跳轉到目標網(wǎng)頁的(當前頁面);
最后說一下為什么要使用平穩(wěn)退化,可能會有這樣的想法:讓那些禁用了或者不支持JavaScript的瀏覽器順利訪問你的網(wǎng)站有那么重要嗎,畢竟現(xiàn)在使用不支持JavaScript或者總是禁用JavaScript功能的用戶應該是已經(jīng)非常少的了。
確實這樣的用戶已經(jīng)非常少了,但是它很重要;
這個用戶可能是一個搜索機器人——一種自動化程序,他們?yōu)g覽各個網(wǎng)頁的目的只是為了加入到搜索引擎的數(shù)據(jù)庫里,各大搜索引擎都有類似的程序,但是大多數(shù)的搜索機器人無法理解JavaScript代碼,所以如果你的網(wǎng)頁無法平穩(wěn)退化,會很大程度上打擊其在搜索引擎上的排名。
總結
以上所述是小編給大家介紹的JavaScript中的平穩(wěn)退化(graceful degradation),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
JS實現(xiàn)獲取數(shù)組中最大值或最小值功能示例
這篇文章主要介紹了JS實現(xiàn)獲取數(shù)組中最大值或最小值功能,結合實例形式總結分析了javascript獲取數(shù)組最大值與最小值的三種常見操作技巧,需要的朋友可以參考下2019-03-03JavaScript在圖片繪制文字兩種方法的實現(xiàn)與對比
這篇文章主要為大家詳細介紹了前端實現(xiàn)在圖片上繪制文字的兩種思路,支持即粘即貼即用,文中的示例代碼講解詳細,需要的小伙伴可以了解下2024-03-03JS Object構造函數(shù)之Object.freeze
這篇文章主要介紹了JS Object構造函數(shù)之Object.freeze,對JS感興趣的同學,可以深入了解下2021-04-04Javascript 更新 JavaScript 數(shù)組的 uniq 方法
2008-01-01微信小程序中的店鋪評分組件及vue中用svg實現(xiàn)的評分顯示組件
這篇文章主要介紹了微信小程序之店鋪評分組件及vue中用svg實現(xiàn)的評分顯示組件,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11