めも:ajaxの戻る

またハマってるのがajax…ブラウザの戻る。
ブラウザの「戻る」自体はわたし自身もよく使うし、いわゆるユーザビリティを考えても、ブラウザ標準の機能をサービスの都合でどーこーするのは、発想する時点で負け確定。
とはいえ、確認画面なんかで、おっといけない書き直し、となった場合、用意されてる「戻る」ボタンじゃなくて、ブラウザの「戻る」を押すことが多くて(わたしはSleipnirでマウスジェスチャで戻る)それはそれで問題。
ブラウザで戻られると、ajaxで出してるフローティングコンテナのフォームがぶっ飛んでしまう。
せめて一度だけこのときだけでもブラウザの「戻る」は「なにもしない」で欲しい、と。
あれこれ検索してみて、とりあえず一度きり、ブラウザの戻るを「なにもしない」にしてみる。
if(document.all){
var ifr = document.createElement('IFRAME');
ifr.style.cssText="display:none";
document.body.appendChild(ifr);
var iframe = frames[frames.length -1].document;
iframe.open();
iframe.close();
iframe.location.hash="#books";
}
else{
window.location.hash="#books";
}
location.hashにテキトーな値を入れると、URLの履歴にページ内ジャンプのURLが追加される=ページ遷移が起こらない。これを利用してブラウザの戻るを意図どおり一度だけ「なにもしない」にできる。
ajaxが絡むページ移動やブックマークではこいつをさらにガリガリ使って、いわゆるフツーのページ遷移・ブックマークを実現する…らしいけど、わたしはそこまで考えてないし、そんなスキルもない。
で、どうもIEだけが別扱いらしく、widndow.location.hashに値を入れても反応してくれない。
document.allでくくった中のように、ダミーでiframeを生成して、そのiframeをopen→closeして、そのiframe のlocation.hashに値を代入、なんて二度手間三度手間してようやく。
うーん、でもこれでいいのか、本当に意図どおりなのか、てのはいろんなパターンを検証しないとわからんちんだなぁ。
» ローカル環境で電子書籍を作る、Macアプリ・Windows版ツール 「かんたんEPUB3作成easy_epub」
【電子書籍発売中】
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 400円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 100円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 490円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 600円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 300円
- » Kindle
- » iBooks
- » kobo
- » B.W.
- 200円
doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍