2011/06/30

[JavaScript] Androidではwindow.history.pushState/replaceStateが使えない

結論から言うと、タイトルそのまま。Androidではwindow.history.pushStateが使えなかった。
もちろんreplaceStateも

スマートフォンサイト向けにTwitterのサイトでやってるように、ページ下部に表示したいデータをどんどん追加していくやつをやった。

追加して表示するのはAjaxでよみこんでinnerHTMLで後ろに追加ってのでできたんだけど、Twitterと違って、そのリストからそれぞれの個別ページにリンクしてた。

で、リンク先のページを開いた後、戻るボタンでリストページに戻ってみると、ページの一番頭に戻される。
それだとリストの下の方のをクリックしていた場合、またそこら辺まで表示させるのがめんどくさいので、ページを移る時にwindow.history.replaceStateでページの履歴を#付きのURLと入れ替えようと思ったんだけど、Androidではできなかった。iPhoneではできたんだけどなー。
(#に読み込んだページ数でも入れて、#が付いている時はリストのそのページを表示するようにしたかった)

location.hash = "page="+pageId;

で履歴に残すことはできた。けど、これだと#なしのURLと#つきのURLの両方が履歴に残る。
それもちょっと気持ち悪いような…

Androidの戻るボタンはブラウザの戻るとは違うからなのかな

0 件のコメント:

コメントを投稿