遭遇した不具合についてメモする今日この頃。
自分が遭遇した不具合(バグ?)について調査しようと、ネットで結構調べたんですけど、現時点で情報があんまり無くて、あれー?みんなは別に困ってないのかなぁ、と思った次第なんですね。
なのでメモしておくわけですが、実は解決方法は分からない。という中途半端なメモではありますが、気になる人は気になる、ということで。
確認した中では、Firefox限定っぽいです。(つい最近リリースされたFirefox3でも同様)
1.Firefoxでlightwindowやgreyboxが使われたページに行く。
2.あざやかにリンクをクリック!
3.あざやかに閉じる
4.そしてブラウザの戻るが効かなくなる・・・・(javascript:history.back();も同様)
ということです。
lightwindowやgreyboxは、基本的にはリンクを開くとiframeで処理します。
なので、リンクを開いた状態でブラウザの戻るの履歴を見ると、1個遷移しているのが分かります。
そこで、開いたリンクを閉じた場合・・・
例:
IEだと、増えた履歴が消える
Firefoxだと、履歴が残ったまま
という動作になります。
ここからは完全に推測なのですが、Firefoxの場合、追加して遷移したiframeがjavascriptで消された事によって、おかしくなった履歴がそのまま残り、該当ヒストリーに戻ったり進んだりすることが出来なくなるのかな、と、そう思ったんですがどうですかね?さすがにブラウザ内部の動作までは分かりようがないので、推測でしかないですが、概ねそんな感じかと。
なので、lightwindowやgreyboxを使う以上、今の所は解決方法無いかもなー、と思っています。
ところが、lightwindowで同一ドメインへのリンクの場合、iframeを用いない為、ヒストリーが増えません。
結果、閉じた後でも戻れます。
まあ、ajaxでの取得なんで、同一ドメインでないとダメだし、css周りがかなり厄介なので、あまり現実的ではないのですが、条件付でFirefox対策する事は出来そうです。
あくまでも強烈に制限のある条件の下で、ですが。
この現象は「バグ」なんですかね?まあ正しく動作していないからバグといえばバグなんですけど、、、
というのが少し気になった点だったりします。
その辺の事情に詳しい方のご意見を頂いてみたい今日この頃。