URIのhashで状態を保存する

↓(ご一緒にポテトはいかがですか〜〜)の続きで、
最速インターフェース研究会 [Ajax] location.hashを使ったセッション復元 http://la.ma.la/blog/diary_200502270128.htm
というのをやってみたんですが、茨の道が…


XMLHTTPRequest を open("GET", url, true) で呼び出します。で、url に "?" から(クエリから)始まる相対指定をすると( "?rs=action" みたいなの)Mozilla の HTTP は「 GET /hoge/hoge/ 」なんですが、IEは 「GET /hoge/hoge/#%xx%xx 」と、ハッシュ以下をサーバに渡してしまい、Apache が # 以下を探しに行って NotFound になってしまう(;・∀・) 参考までにIE で取りに行ったときの Apacheのログ

[Thu Mar 10 10:09:38 2005] [error] [client 127.0.0.1] File does not exist: x:/htdocs/nazoking/suggest/#

x:/htdocs/nazoking/suggest/index.php は存在し、 suggest/ では取りに行けます…JavaScriptは茨の道


なんで相対指定だったかというと SAJAX というパッケージを使ってたからなんですが。で、これに気づいてパッケージの方を改変して url を location.path + "?rs=action" にしたところ、取りに行く方はうまくいったんですが、今度は location.hash の挙動が違うんです。具体的に言うと Mozilla が化ける!(;´д⊂)
なんだよこれ、使えねぇよヽ(`Д´)ノ 最速インターフェース研究会の人に文句を言いにいこうと思ったら
http://ma.la/mirrorman/wiki.cgi/location.hash

firefoxでの文字化け
firefoxの場合、日本語を使うと化けてしまうようだ。
location.href.replace(/.*?#/,"")で取得してやれば化けない。

Σ(゜д゜lll)


つうことで、location.hash で検索文字列を保存します。
ポテトを検索→ http://nazo.yi.org/suggest/#%E3%83%90%E3%83%BC%E3%82%AC%E3%83%BC