勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

jquery.cookie.jsで「$.cookie is not a function」エラー

   2022/07/21  jQuery JavaScript

フロントエンド側でCookieを利用したい場合jquery-cookieを用いることが多いが同プラグインで実装した際、環境によっては「$.cookie is not a function」というエラーが発生し、Cookieの操作が行えないということがあった。以下に対応方法をメモ。

 

原因?

jquery-cookieは開発が終了しており、そちらが原因かもしれない(jQueryのバージョンが新しいとダメなのかも)。こちらのページが参考になった。

 

対応方法

jquery-cookieからjs-cookieに変更した。まず公式サイトからJSファイルをダウンロードするか以下CDNでJSファイルを呼び出す。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/js-cookie@3.0.1/dist/js.cookie.min.js"></script>

異なるバージョンを使用したい場合は以下から探す。

https://www.jsdelivr.com/package/npm/js-cookie

 

次にソースコードを以下の通り書き換える。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
//cookie取得
//旧バージョン
$.cookie('name');
//新バージョン
Cookies.get('name');
//cookie保存
//旧バージョン
$.cookie('name', 'value');
//新バージョン
Cookies.set('name', 'value');
//cookie削除
//旧バージョン
$.removeCookie('name');
//新バージョン
Cookies.remove('name');
//cookie取得 //旧バージョン $.cookie('name'); //新バージョン Cookies.get('name'); //cookie保存 //旧バージョン $.cookie('name', 'value'); //新バージョン Cookies.set('name', 'value'); //cookie削除 //旧バージョン $.removeCookie('name'); //新バージョン Cookies.remove('name');
//cookie取得
//旧バージョン
$.cookie('name');
//新バージョン
Cookies.get('name');

//cookie保存
//旧バージョン
$.cookie('name', 'value');
//新バージョン
Cookies.set('name', 'value');

//cookie削除
//旧バージョン
$.removeCookie('name');
//新バージョン
Cookies.remove('name');

互換性があるようで新バージョンでも過去記事の時間指定も行えた。

 

所感

jquery-cookieで実装したシステムは複数あるのでcookie関連でのエラーが出てきた時用に覚えておきたいところ。

 - jQuery JavaScript

  関連記事

jQuery.uploadでリアルタイムプレビュー

やりたい事は、 ・<input type="file">で画像を選択 ...

jQueryでiframe内の要素を呼び出し

jQueryでiframeで開いたbody内の内容が欲しかった。 ■jQuery ...

jQueryにて$.parseHTML()を用いてHTML文字列をDOMノードに変換する方法

あるサイトのソースコードを拝見しているとjQueryで$.parseHTML() ...

jQuery UIのDatepickerでリセット(入力内容消去)ボタンの追加方法

jQuery UIのDatepickerでキーボード入力を防ぎたいためreado ...

jQueryで画像が存在すれば表示、なければノーイメージ画像を表示

やりたかった事は以下の通り。 ・画像のURLはcode.jpgみたいになってる ...

S