有没有一种使用JavaScript设置查询字符串值的方法?
我的页面有一个筛选列表,当点击时,它会改变右侧的页面结果窗格。
我正在尝试更新url的查询字符串值,以便如果用户离开页面,然后点击“返回”按钮,他们将返回到上次过滤器选择集。
例如:
落地页:foo.html
点击1:foo.html?facets=bar
点击2:foo.html?facets=bar|baz
点击3:foo.html?facets=bar|baz|zap
这可行吗?
有没有一种使用JavaScript设置查询字符串值的方法?
我的页面有一个筛选列表,当点击时,它会改变右侧的页面结果窗格。
我正在尝试更新url的查询字符串值,以便如果用户离开页面,然后点击“返回”按钮,他们将返回到上次过滤器选择集。
例如:
落地页:foo.html
点击1:foo.html?facets=bar
点击2:foo.html?facets=bar|baz
点击3:foo.html?facets=bar|baz|zap
这可行吗?
// Get current URL parts
const path = window.location.pathname;
const params = new URLSearchParams(window.location.search);
const hash = window.location.hash;
// Update query string values
params.set('numerical', 123);
params.set('string', 'yummy');
params.set('multiple', ['a', 'b', 'c']);
params.set('foreignChar', 'é');
// Encode URL
// numerical=123&string=yummy&multiple=a%2Cb%2Cc&foreignChar=%C3%A9
console.log(params.toString());
// Update URL
window.history.replaceState({}, '', `${path}?${params.toString()}${hash}`);
params.toString
之后也包括 location.hash
。 - Kyle Barron