我正在嘗試關注不引人注意的JavaScript /優雅降級技術。我想在打開JavaScript和關閉JavaScript時使用不同鏈接提供頁面。如果啓用JavaScript,如何在網頁上生成不同的鏈接?
例如當JavaScript是關閉狀態的鏈接將是
<a href="script.cgi?a=action">
並且當開啓JavaScript
<a href="script.cgi?a=action;js=1">
(或類似的東西)。
鏈接的兩個版本(使用JavaScript且不使用JavaScript)都會導致服務器端腳本,但具有不同的參數。在關閉JavaScript時要調用的版本在服務器上執行更多操作,因此在那裏檢測JavaScript(例如,通過window.location
從非JavaScript的服務器腳本重定向到其他版本)將是徒勞的。
注:我更喜歡解決方案,而不使用像jQuery這樣的JavaScript庫/框架。
我不喜歡假設行動查詢字符串參數將始終存在的脆弱。爲什麼不是一個單獨的參數,例如,js = 1? – RedFilter 2009-07-22 21:33:13
第一個示例中的查詢字符串具有值爲「action」的「a」參數,該部分示例具有相同的內容,但添加了值爲「1」的「js」參數。 (請注意;和&在所有好的查詢字符串處理庫中都是可以互換的)。 – Quentin 2009-07-22 21:56:51
如果你遵循正常的降級,那麼你不應該試圖通知服務器JS可用或不可用。它應該在頁面內部處理,服務器不需要關心。 http://icant.co.uk/articles/pragmatic-progressive-enhancement/是一個很好的指南。 – Quentin 2009-07-22 21:58:16