質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

908閲覧

ユーザーごとにページ移動した回数をカウントしたい

moooooo

総合スコア10

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/10/13 06:52

編集2023/04/14 02:04

前提・実現したいこと

サイトの下部に広告のような×ボタンで消せるバナーを表示させ、
バナーを非表示にしてから「5回ページ移動した場合」また表示させる。
という仕様を頂いています。

ですがページ移動をした回数を取得する方法が判らず困っています。
cookieで取得できるのでは?という方向でいろいろ調べていますが解決出来ません。

試したこと

現状「jQuery.cookie.js」を使い当日の初回訪問の場合のみ表示させる動きは出来ています。

該当のソースコード

以下はcookieで「当日の初回訪問の場合のみ表示」しています。
ここを一部変更して出来ればとても助かります。
そもそもcookieではできないのであれば他の方法も教えて頂きたいです。

<script src="jquery.min.js"></script> <script src="jquery.cookie.js"></script> <script> $(function () { if ($.cookie('bnrRead') != 'on') { $('#main').append('<div id="bnr"><p>次回以降は表示させないように出来る要素</p><button id="btn">次回以降は表示させない</button></div>'); } //隠すボタンをクリックしたらバナーを隠す $('#btn').click(function () { $('#bnr').hide(); $.cookie('bnrRead', 'on', { expires: 7, //cookieの有効日数 path: '/' }); }); //cookieを削除する $('#del').click(function () { $.removeCookie('bnrRead', { path: '/' }); }); }); </script> <div id="main"> <button id="del">このサイトのcookieを消す</button> </div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/10/13 06:54

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
kei344

2017/10/13 07:17

質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。また、何をどう試されたのでしょうか。
moooooo

2023/04/14 02:07

5年も間が空いてしまいました...大変申し訳ありません。 当時やりたかったことは別の制作者へ依頼をし、最終的には実装が見送られました。 次の対応へ移り、こちらの質問が放置という形になってしまっており...本当に失礼いたしました。 課題として個人的にテスト実装して自己解決を試みてみようと思います。
guest

回答2

0

自己解決

5年間の知識を使って動くものを作成できました。(cookieではなくsessionStorageを使用)
ただ、そもそも5回訪れた後(もしくはリロードした後)に表示させる意味ってあるのか?とは思います。。。
リアクションしてくださったお2方ありがとうございました!

HTML

1<script> 2 $(document).ready(function () { 3 var banner = $('#banner'); 4 var closeBtn = banner.find('.close-btn'); 5 6 if (!sessionStorage.getItem('bannerClosed')) { 7 banner.show(); 8 } 9 10 closeBtn.click(function () { 11 banner.hide(); 12 sessionStorage.setItem('bannerClosed', 'true'); 13 }); 14 15 var visits = sessionStorage.getItem('visits'); 16 visits = visits ? parseInt(visits) : 0; 17 18 if (visits >= 5) { 19 sessionStorage.removeItem('bannerClosed'); 20 sessionStorage.setItem('visits', 0); 21 } else { 22 sessionStorage.setItem('visits', visits + 1); 23 } 24 }); 25</script> 26<div id="banner" class="banner"> 27 <span class="close-btn">X</span> 28 <p>バナー</p> 29</div>

投稿2023/04/14 04:43

moooooo

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

$.cookie('bnrRead', 'on', { //cookieにbnrReadという名前でonという値をセット

↑単なる「ON」「OFF」だけでなく、表示回数もセットしていけばいいのでは?
で、「ON」の時は無条件表示、「OFF」にされたら表示回数リセット、表示回数が5回になったら、表示回数のカウンタを0に戻して、強制的に「ON」にする、とか。

投稿2017/10/13 07:21

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

moooooo

2017/10/16 01:12

回答ありがとうございます。間が開いてしまい申し訳ありません。 表示回数をリセットする為には回数をカウントする必要がありますよね そのカウント方法がわからない状況です。 取得する為のライブラリがあるのか、別の方法でできるのか(ループ処理をしてカウントするとか...でもそれだと別のページに行くたびリセットされてしまいますよね) 納期にはもう間に合いませんが(初回訪問時のみ表示で初稿に出します) 再現出来るやり方を調べてみます。 お時間がある際にまたご協力頂けると幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問