- ベストアンサー
Flash ブラウザの「戻る」ボタンで戻ったときにFlash内の特定のページに飛ぶ
ブラウザの「戻る」ボタンで戻ったときにFlash内の特定のページに飛ぶようにするにはどうしたらいいのでしょうか? というのが質問です。 「戻る」ボタンではなく、ページリンクから飛ぶときには「hoge.html?tatoeba=0」というふうに変数を渡していますが、ブラウザの戻るボタンから戻ってきた場合の方法がわかりません。 どなたかご教授願えないでしょうか。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
サイト内のページ移動を全てFlashのボタンにしたうえで, 条件分岐の消去法で行くとある程度できるかもしれません。 そのFlashを設置したHTMLに便宜上「A.html」, そのFlash自体に「A.swf」という名を付けたとします。 「A.html」へのアクセスには次のようなものが考えられます。 1 お気に入りなどショートカットからのアクセス 2 他のサイトからのリンクアクセス 3 他のサイトからの「戻る」アクセス 4 他のサイトからの「進む」アクセス 5 「A.html」のあるサイト内からのリンクアクセス 6 「A.html」のあるサイト内からの「戻る」アクセス 7 「A.html」のあるサイト内からの「進む」アクセス 1 お気に入りなどショートカットからのアクセス referer(JavaScriptで取得) なし 2 他のサイトからのリンクアクセス referer あり 他サイト 3 他のサイトからの「戻る」アクセス referer あり 他サイト 4 他のサイトからの「進む」アクセス referer あり 他サイト 5 「A.html」のあるサイト内からのリンクアクセス referer あり 自サイト (Flashボタンのrefererは取れない) SharedObject でクリック検知可 6 「A.html」のあるサイト内からの「戻る」アクセス referer あり 自サイト 7 「A.html」のあるサイト内からの「進む」アクセス referer あり 自サイト 「A.html」のあるサイト内からのリンクアクセスの場合, ページ移動用のボタンをFlashで作成しておけば, そのボタンを押して他のページに移動した場合, SharedObject(共有オブジェクト)に固有の値を残せます。 例えば「B.html」にある「B.swf」のボタンでしたら, click="B" 例えば「C.html」にある「C.swf」のボタンでしたら, click="C" などなど… また「A.html」から他のページに行くときは, click="A" です。 ですから,第一分岐で, SharedObject参照で click の値として "A" 以外を判定すれば, 5 「A.html」のあるサイト内からのリンクアクセス が他のものと区別できます。 ただし, 「B.html」や「C.html」などのページから他のページを経由したり, 一旦ブラウザを閉じたりするとその "B" や "C" は残ることになりますから, ある範囲の時間内(1秒とか内)で保存された "B" や "C" であれば,"A" 以外であると判断させるような必要があります。 第二分岐で, referer あり/なし を判定すれば, 1 お気に入りなどショートカットからのアクセス がは他のものと区別できます。 第三分岐で, referer ありで,それが 他サイト であるのか自サイトであるのかを判定すれば, 2 他のサイトからのリンクアクセス 3 他のサイトからの「戻る」アクセス 4 他のサイトからの「進む」アクセス ------------- 6 「A.html」のあるサイト内からの「戻る」アクセス 7 「A.html」のあるサイト内からの「進む」アクセス 2・3・4 と 6・7 が区別できます。 ここまでをまとめます。 ↓↓↓ 時間内に保存された SharedObject の click が "A" 以外であって (実際は保存されていない場合も "A" に入ります), referer が 自サイト内ページ である場合, 6 「A.html」のあるサイト内からの「戻る」アクセス 7 「A.html」のあるサイト内からの「進む」アクセス のどちらかである。 ここまで求められます。 自サイト内からの「戻る」ボタンと「進む」ボタンによるアクセスの区別はつきませんが, ここまでならなんとか四苦八苦すれば不可能ではないと思います。 実際にどういうコードにすれば良いかはわかりません。 JavaScript も登場しますし,それとの連携も必要です。 また, サイト内の移動ボタンをすべてFlashボタンにするのも,良いこと??? とも思います。 何にしても,ブラウザの「戻る」ボタンの検知など, HTML でも JS でも基本的に不可能です。 Flash を利用すると, それらの機能にプラスして少しだけ絞れるようになるというだけの案です。
その他の回答 (1)
- patsaysnow
- ベストアンサー率50% (5/10)
ご質問されている内容と合っているかどうかわかりませんが、 http://www.project-nya.jp/modules/weblog/details.php?blog_id=659 は参考になりませんか?
お礼
御回答ありがとうございました。 参考になりましたが、これを使用するとなるとけっこう技術が必要になり、他の人間が見たときには手もつけられないというようなことになりかねないので使用は見送りました。 最終的に採用したのは、トップページから来た場合には変数を与えて一番最初から、他のページから来た場合には hogehoge=null で途中からの省略版を見せる、ということで対応しました。 ありがとうございます。他の方たちへも非常に役に立つ御回答となったことだろうと思います。
お礼
御回答ありがとうございました。 理解するのに時間を取られてしまいましたが、結果的にはわかりました。 なるほど擬似的に見せることなわけですね。 何にしてもブラウザの「戻る」ボタンの検知など、HTML でも JS でも基本的に不可能だということですね。 最終的に採用したのは、トップページから来た場合には変数を与えて一番最初から、他のページから来た場合には hogehoge=null で途中からの省略版を見せる、ということで対応しました。 でもありがとうございます。今回のご回答はいつかやくに立つだろうし、戻る」ボタンの検知など、HTML でも JS でも基本的に不可能ということがわかっただけでも大きかったです。また同じような情報を探してくる人もいると思いますので、そのときにも非常に役に立つ御回答となったことだろうと思います。