logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

Drupal:jQuery Cookie を Javascript Cookie に書き直す方法

16/01/2024, by Ivan

Drupal 9 以降は、jQuery Cookie の代わりに Javascript Cookie ライブラリを使います:

https://www.drupal.org/node/3104677

https://www.drupal.org/node/3322720

https://www.drupal.org/node/3296086

コントリビュートモジュール向けのパッチも数多く見つかります。例えば:

https://www.drupal.org/project/eu_cookie_compliance/issues/3194270

サイトを Drupal 10 にアップグレードする必要がある場合は、jQuery Cookie ライブラリを置き換える必要があります:
my_module.libraries.yml

my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/jquery
    - core/jquery.cookie
    - core/drupal

を次のように:

my_library:
  js:
    js/my_library.js: {}
  dependencies:
    - core/drupal
    - core/js-cookie

そして JavaScript コードを更新します:

 Drupal.behaviors.myModule = {
    attach: () => {
      // Cookie を設定する。
      Cookies.set('cutest', 'red panda');
      // Cookie を取得する。
      const myCookieValue = Cookies.get('cutest');
      // Cookie を削除する。
      Cookies.remove('cutest');
      // JSON オブジェクトとして保存・取得する。getJSON メソッドは js-cookie 3.0.0 で非推奨になるため、使用は避けるべきです。
      Cookies.set('cutest', JSON.stringify({ animal: 'red panda' }));
      const cutest = JSON.parse(Cookies.get('cutest'));
    },
  };