Hail2u

noscript要素をhead要素で使う

様々なライブラリのお陰でJavaScriptでドキュメントをゴニョゴニョするのが簡単になったので、代替コンテンツを用意することはあまりなくなった。そのためnoscript要素が使われているページを見ることはまず無い。などと始めながらそういう代替コンテンツのためのnoscript要素の話ではなく、head要素内でうまく使うとJavaScriptの有効・無効でユーザーを振り分けられるという話。

具体的には以下のように書く。

<head>
  <noscript>
    <meta http-equiv="Refresh" content="0; URL=noscript.html">
  </noscript>
</head>

これでJavaScriptが無効になっている場合noscript.htmlリダイレクトされる。HTML4.01ではこういったことはできなかったのでつい最近まで知らなかった。印刷向けページ(やプレーンテキストのページ)を別個用意できている場合にJavaScriptが無効ならそれらにリダイレクトさせるという利用が最も効果的に使えそう。

head要素内のnoscript要素ではmeta要素以外にもlinkstyle要素が利用できる……けど特におもしろい利用法が思いつかない。JavaScriptに依存するパーツを隠すためのスタイルを取り込むとかだろうか。