JS 中的URLSearchParams 对象操作(以对象的形式上传参数到url)
谢友海 人气:0基本用法
此功能某些浏览器尚在开发中,兼容性可能不是很好。
URLSearchParams()
构造器:创建并返回一个新的URLSearchParams
对象。 开头的’?
’ 字符会被忽略。
语法:
// init: 参数可选,为一个 USVString var URLSearchParams = new URLSearchParams(init);
示例:
// 传入一个字符串字面值 var searchParams = new URLSearchParams('https://example.com?foo=1&bar=2'); console.log(searchParams.toString()); // foo=1&bar=2 // 查找字符串 console.log(searchParams.has('foo')); // true // 获取字符串对应的数据 console.log(searchParams.get('foo')); // 1 // 设置字符串 searchParams.set('ttl','3'); // 1 console.log(searchParams.toString()); // foo=1&bar=2&ttl=3 // 传入一个 sequence var params3 = new URLSearchParams([["foo", 1],["bar", 2]]); console.log(params3.toString()); // foo=1&bar=2 // 传入一个 record var params4 = new URLSearchParams({"foo" : 1 , "bar" : 2}); console.log(params4.toString()); // foo=1&bar=2
url的打印结果:
实践运用
函数封装:
export function toSearch(record: Record<string, string>) { return new URLSearchParams(record).toString(); }
使用
// Button 按钮是adtd里面的,这里只展示局部代码 <Button type="link" href={`#/project/flowpage?${toSearch({ id: 666, name: "liu", })}`} target="_blank" > 点击按钮 </Button>
效果:
// 前面域名指向当前网页的域名,这里暂用...省略 ...#/project/flowpage?id=666&name="liu"
加载全部内容