JS リンククリック時にGETパラメータを追加してからページ遷移してほしい

他人が作ったライブラリとページ内リンクの絡みでGETパラメータが渡ってくれないコトがある

作成日:2022-01-04, 更新日:2022-11-07

やりたいこと

細かい状況は置いといて・・・
リンクをクリックしたら、GETパラメータを追加してからページ遷移」ってのをやりたい

サンプル

$(〇〇〇).on('click', 'a', function(){
  let url = new URL($(this).attr('href')); // aタグからURLを取得して、インスタンス作成
  let key_getPrm = 'hoge'; // URLに追加したいGETパラメータのキーのほう
  let val_getPrm = 'foo'; // URLに追加したいGETパラメータの値のほう
  if( !url.searchParams.get(key_getPrm) ) { // 現在のURLに追加したいパラメータが存在しないとき
    url.searchParams.append(key_getPrm, val_getPrm);
    location.href = url;
    return false; // 2重クリック扱いにならないように、aタグの処理をストップ
  }
});

※if()文に入ったときは、jsからページ遷移。入らないときは通常のaタグのページ遷移

関連項目