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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

2916閲覧

jQueryにて、ブラウザを閉じたときにCookieを削除したいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Cookie

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/07/30 07:19

編集2020/07/30 07:27

前提・実現したいこと

閲覧ありがとうございます。

jQueryを使ってCookieを参照し、モーダルを表示する処理を実装しています。
仕様、およびプラグインは以下の通りです。

【仕様】
0. サイトに訪れた初回のみモーダルを表示
0. ブラウザを閉じたときにCookieを削除(タブを閉じたときや、ページ遷移時ではない)
0. 再度ブラウザを開き、サイトに訪れるとモーダルが表示される

【プラグイン】

  • jquery-3.2.1.min.js
  • jquery.cookie.js

仕様の2番目の
「ブラウザを閉じたときにCookieを削除」ができません。
ご教授お願いいたします。

該当のソースコード

jQuery

1// モーダルの開閉、Cookieの保存 2 $(function () { 3 $(".modal").show(); 4 $.cookie('save') == 'on' ? $(".modal").hide() : $(".modal").show(); 5 $(".-modal-close").click(function () { 6 $.cookie('save', 'on', { 7 expires: 7, 8 path: '/' 9 }); 10 }); 11 }); 12 13// Cookieの削除 14 $(document).ready(function () { 15 $(window).on('beforeunload', function (e) { 16 $.cookie('save', null); 17 }); 18 });

原因・試したこと

Cookieの削除にbeforeunloadメソッドを使っていますが、
こちらだと「ページの更新・ページの遷移」時にもCookieが削除されます。

「ブラウザを閉じたとき」のみ発火するイベントが見つからなかったので質問いたします。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

どういう運用なのかわかりかねますが、ページの遷移がだめとなると
むしろリファラをみて自サイト以外から遷移以外の開いたときに削除すればよいのでは?

投稿2020/07/30 07:35

yambejp

総合スコア116724

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

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

退会済みユーザー

退会済みユーザー

2020/07/30 07:57 編集

早々の回答ありがとうございます。 自サイト以外から訪れた場合のみ、Cookieを削除すればいいのですね! リファラを使った経験がなく思いつかなかったです...。 ちなみにですが、ブラウザを閉じたことを検知するのは jQueryだけでは不可能なのでしょうか?
yambejp

2020/07/30 08:04

ブラウザを閉じるという行為自体、強制終了とか不正終了とかあるので できたとしても確実性がないでしょう。
退会済みユーザー

退会済みユーザー

2020/07/30 08:13

予期しない動作があると、確かに確実性がないですね...。 分かりました、教えていただいた方法でやり直してみます! ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問