• 締切済み

サイト訪問時に一度だけ表示されるページ

サイト訪問時に一度だけ表示されるページはどう作ればよいですか? できればindex.html内で完結されているほうがいいです。 久しぶりに勉強を兼ねてWEBサイトを作成しています。 作ってる環境はHTML5、CSS3、jQuery等です。 色々検索してみたのですが、わからなかったので質問させていただきます。 文章では伝えづらかったので画像を用意しました。見てください。 なにか方法がありましたらご教授ください。

みんなの回答

回答No.1

相手が初回訪問かどうかを判定するのは、クッキー以外にないでしょう。 jQuery cookieを使えば簡単ですよ。 https://goo.gl/tBvFpG リロード判定というのは、難しそうですが、こんな難しいことも編み出している人が居るんですね。 windowに名前をつける方式で、リロードしたのか、新規訪問なのかを判別する方法を考えついている人が居ます。良く思いつきますよね・・・。 http://samurai20000.hatenablog.com/entry/20091209/1260366464 どちらも、若干Javascriptの知識が必要ですが、サイトを見れば例文が載っているので、それをアレンジすれば比較的簡単かと思いますよ。

noname#225721
質問者

お礼

今なんとなくやってみたら出来ました(∩´∀`)∩ とりあえずindexページのスクリプトに //初回アクセスのみWELCOME表示// var $my_window = "toppage"; // 任意のウィンドウ名を指定 if ( window.name.indexOf( $my_window )!=-1 ) { //任意のウインドウ名かチェック } else { window.name = $my_window; // ウィンドウ名を任意に名付ける alert( "ようこそ!" ); // 初回訪問時の処理 } //リロードでWELCOME表示// function reloaded () { return window.name == window.location.href ? true : false; } if (reloaded()) { window.name = $my_window; // ウィンドウ名を任意に名付ける alert( "ようこそ!" ); // 初回訪問時の処理 } window.name = window.location.href; んで、コンテンツページのスクリプトに var $my_window = "toppage"; // 任意のウィンドウ名を指定 if ( window.name.indexOf( $my_window )!=-1 ) { //任意のウインドウ名かチェック } else { window.name = $my_window; // ウィンドウ名を任意に名付ける } を組み込むことでなんとか希望の動きが出来ました。 半分くらい理解しきれてないんでなんか余計なコードがあるかもしれませんが…とりあえず出来たので満足です。 ありがとうございました!

noname#225721
質問者

補足

回答ありがとうございます。 その後、色々と検索した結果。 http://web.contempo.jp/weblog/tips/p3147 このページに行き当たりましてこれを採用することにしました。 リロードの処理は、コードがややこしくなりそうなのでとりあえずやめました。 ですが、 検索サービスからコンテンツページを最初にみた時、indexに戻るとWelcome画面が出てきてしまうのがやや気になりますね。その場合はいらないというか… やっぱ、別途Welcomeページを作ってそこからメインページに飛ぶという単純な方法がいいのか悩んでます。。。

関連するQ&A