私は目立たないJavaScript/graceful劣化のtecnhiqueに従おうとしています。 JavaScriptがオンになっているときとJavaScriptがオフになっているときに、異なるリンクのページを提供したい例えばJavaScriptが有効になっている場合、Webページに異なるリンクを生成するにはどうすればよいですか?
JavaScriptのではJavaScriptを
<a href="script.cgi?a=action;js=1">
(またはそのような何か)になっている場合、リンクが
<a href="script.cgi?a=action">
こととなりオフになっています。
JavaScriptとJavaScriptの両方のバージョンのリンクがサーバーサイドスクリプトにつながりますが、パラメータは異なります。 JavaScriptをオフにしたときに呼び出されるバージョンはサーバー上でより多くの処理を実行するため、JavaScriptを検出することは非生産的です(非JavaScriptのサーバースクリプトから他のバージョンにwindow.location
経由でリダイレクトするなど)。
注:私はjQueryのようなJavaScriptライブラリ/フレームワークを使用せずにソリューションを好むだろう。
私はアクションクエリ文字列のparamが常にそこにあると仮定して脆弱ではありません。なぜ別のパラメータではないのですか?たとえば、js = 1? – RedFilter
最初の例のクエリ文字列には、値が "action"の "a"パラメータがあり、セクションの例は同じですが、値が "1"の "js"パラメータが追加されています。 (注意:&はすべての良いクエリ文字列処理ライブラリで互換性があります)。 – Quentin
優雅な縮退に従っているなら、JSが利用可能かどうかをサーバーに知らせるべきではありません。これはページ内で処理する必要があり、サーバーは気にする必要はありません。 http://icant.co.uk/articles/pragmatic-progressive-enhancement/は良いガイドです。 – Quentin