ページリダイレクトを JS で発生させます。ちょっとした小細工ができる。
(fixme)
<head>
:
<script src="path/to/iroha.redirect.js"></script>
:
</head>
iroha.redirect.js を <script> 要素で読み込む際の src 属性にクエリ文字列をつけることで、リダイレクトの設定を行います。
パラメータ名=値 を ; 区切りで記述します。パラメータ名の出現順は自由。
| パラメータ名 | 説明 | 任意性 |
|---|---|---|
| url | リダイレクト先。完全 URL もしくは相対 URL 。 この指定が無い場合には何も起きません。他パラメータの指定もすべて無効になります。 なお、 URL 中に ; は使えません。 | 必須 |
| hide | リダイレクトするまでの間、ページ全体の内容を隠すかどうか。 "yes" で「隠す」。 | 任意 |
| delay | リダイレクトするまでの遅延。単位は秒。無指定時は 0 秒でリダイレクト。 | 任意 |
| appear | hide=yes を指定しているときのみ有意。リダイレクト開始後、ページ全体が再表示されるまでの秒数。 無指定時、あるいは 0 秒を指定したときは再表示されない。 | 任意 |
<script src="iroha.redirect.js?url=hoge.html"></script><script src="iroha.redirect.js?url=../fuga.html;delay=1"></script><script src="iroha.redirect.js?url=http://www.example.com/;hide=yes;delay=0;appear=3"></script><script src="iroha.redirect.js?url=success.html;delay=3"></script><script src="iroha.redirect.js?url=success.html;hide=yes;delay=3;appear=2"></script>このスクリプトは、 HTTP ステータスコードによるリダイレクト、HTML の "meta refresh" によるリダイレクト、ユーザに遷移先リンクを意識的に押下させる、等のあるべきリダイレクト手法が利用できない条件下で、それらの代替策として利用するものです。よってアクセシビリティの確保にはより意識的になる必要があります。
リダイレクト先 URL へのリンクをページ中に設置することは、最低限行わなければならないと考えます。たとえばそうした上で、「リダイレクトするまでの間、ページ全体を隠す」オプションを設定してそれを隠しておき、しかし一定時間のタイムアウトで再表示されるような JS 処理を追加するなど、するとよいでしょう。
written by Koji Kasugai (kojika@necomesi.jp) 2013-03-16