亲宝软件园·资讯

展开

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"

加载全部内容

相关教程
猜你喜欢
用户评论