MW211 EXIT

devlog
GETパラメータ(3)いろいろ
2022年12月17日
いろいろあるようだ。

GETパラメータを書き換える方法。
┌──────────────────────────────────────┐
│history.pushState(null, null, '?key1=val1&key2=val2');                      │
├──────────────────────────────────────┤
│history.pushState(null, null, location.pathname + '?key1=val1&key2=val2');  │
├──────────────────────────────────────┤
│history.pushState(null, null, '?' + new URLSearchParams({                   │
│    'key1'  :'val1',                                                        │
│    'key2'  :'val2',                                                        │
│}).toString());                                                             │
├──────────────────────────────────────┤
│history.pushState(null, null, location.pathname + '?' + new URLSearchParams({
│    'key1'  :'val1',                                                        │
│    'key2'  :'val2',                                                        │
│}).toString());                                                             │
├──────────────────────────────────────┤
│const url = new URL(location.href.replace(/\?.*$/, ''));                    │
│url.searchParams.set('key1', 'val1');  // .append()でもOK                   │
│url.searchParams.set('key2', 'val2');  // .append()でもOK                   │
│history.pushState(null, null, url);                                         │
└──────────────────────────────────────┘

GETパラメータをクリアする方法。
┌──────────────────────────────────────┐
│history.pushState(null, null, location.pathname);                           │
├──────────────────────────────────────┤
│history.pushState(null, null, location.href.replace(/\?.*$/, ''));          │
└──────────────────────────────────────┘
分類:JavaScript