Jintrick.netagenda2001年08月アーカイブ → 2001年08月09日

history.back()の正しい使い方

このメソッド(history.back)の正しい使い方は唯一つ。authorが、UserAgentのリファラを予測できない時にのみ、「戻る」の代わりに用意してやる。それ以外には使ってはならない。予測できるのならば、そのURIをhref属性に記述したa要素を作成してやるべきだからである。


経緯

他のページから参照されたセクションのみを表示するという簡単な仕掛けを作った。こうすれば、ページ内の一つのセクションがさも独立した単一の文書であるかのように見せることができる(1セクションのみを表示させた例 / 要・DOM実装UA)。(外部jsファイルを使うので、簡単なスクリプトを追加すれば、サイト内の全てのページのidを持つセクションについて、同じことができます)

これをちょっとだけ応用すれば、スライドショーのようなパフォーマンスにするか、agendaのログで今やっている(注:2007年現在行なっていない)、ポップアップのようなパフォーマンスにするか、読者に選んでもらうことも可能に。つまり、実は単一のシンプルなHTML文書を、色々な方法で閲覧してもらうことが出来る。しかもauthorには負担が全く無い。しつこいが更に言えば、機能を利用できなくとも情報は等価値。無くとも「誰も」「何も」困らないJavaScript。(と、毎回書いておかないとどこかで脱線するかも知れないので)

これは、「サイト内の各文書を有機的に結び付ける行為」の第一段階なので、これらのパフォーマンスはオマケに過ぎない。最終的には、任意のページ内に他ページのセクションを直接取り込めるようにしたい。


で、history.back()と何が関係あるかといえば、自分のサイトの一つのセクションを気まぐれで参照したような場合、history.back()の「戻るボタン」要素をDOMで自動生成して、迷子にならないようにしてあげたらどうかな、という話。

と、ここまで書いて、この場合、history.back()は必要ないことに気づいた。というより、ベターな方法が思い浮かんだ。

DOMを利用すれば、どのページから参照したのかを明示する形のハイパーリンクを生成してやることも出来る。つまり、「<a href="javascript:history.back()">戻る</a>」ではなく、「<a href="foo.html">??に戻る</a>」という要素を生成してやることが出来る。


webmaster@jintrick.net
公開: 2001年08月09日
カテゴリ: Javascript