最近は減ってきているけれど、
それでもまだオープニングFlashを使いたがるお客さんは多い。


オープニングFlashは初見のお客さんにはインパクトがあるが、
リピーターにはただウザいだけ、
そこで、Skipボタンをつけるわけだが、
それでもトップに戻るたびにスキップを押すのはウザい。

その対策として簡単に思いつくのは、
オープニングFlashだけのページを作ってムービー再生後、別ページに移動。
その後は移動先をトップとして扱うという方法。

ただし、これだとSEO上よろしくないし、ページ移動時の挙動が気になる。

そこで、オープニングFlash入りのFlash[A]と、
オープニングFlashをなくしたFlash[B]を二つ用意して、
初めてアクセスするときはFlash[A]を表示し、
サイト内からトップへ戻ったときはFlash[B]を表示するスクリプトを考えました。
(オープニングムービーのみFlashの場合でも使えます)

ここでクッキー(Cookie)を連想したあなた、甘いです。
実は、僕も当初クッキーを使って何とかならないか考えたのですが、
意外とたいへんそうなのでやめてしまいました。
で、何を使ったかというと「リファラ」です。

さて、そのスクリプトは以下のとおりとなっています。
ref = document.referrer;
if(ref.match(/domein/)!="domein"){
writeFlash('_swf=Flash[A].swf','_width=800','_height=400') 
}else{
writeFlash('_swf=Flash[B].swf','_width=800','_height=400') 
}
writeFlashとはFlashの表示に関する不具合対策スクリプト。
詳しくは「.js外部ファイル編 [10]Flash等をIE仕様変更に対応2」あたりを参考に。
writeFlash使わなくてもdocument.write();でタグを書き出せばOKです。

ポイントとなるのは1行目と2行目。
1行目でリファラを読んで、
2行目でリファラ内に自サイトドメインの文字列があったときと、なかったときで分岐しています。
つまり、一度サイト内に入ってからリンクでトップに戻った場合、
リファラに自サイトドメインが入っているハズなのでFlash[B]を表示させ、
違ったらFlash[A]を表示させるというスクリプトです。

ただし、この方法でもブラウザについている戻るボタンを押されたら元も子もないのですが。
(実はそういわれました。ホント、お客さんって痛いところついてくるよなぁ)