location.hashのハック

AJAXなシステムではブックマークができない戻れないということが問題になっているけどlocation.hashを利用してそれを解決しようという試み。foo.html#mode=display&id=00001とかいう感じでやる。hash値は?以外はQUERYSTRINGSみたいな形で解析できるからいいとしてそれに付随するハッシュ値と連動したコントローラ(こっちの知識はサーバーサイド側の技術の応用)

で試してみた。けど意図した通りに動かない。location.hashってアンカーを押した後で何もかも終ったあとに 初めて切り替わるのね…ということはアンカーのクリックをイベントにして動作させようっていうのが無理らしい。普通にやると。Timer関係利用するのもありだけどInterval周りは汚したくないので以下のソースで妥協。

function foo(link)
{
  location.href = link.href;
  何か素敵なことをする。
}

<a href='foo.html#mode=display&amp;id=000001' onclick='foo(this); return false;'>アンカー</a>

クリックしたときにfalseが返るのでfoo()以外のイベントハンドルの発生無