<script>
// URLSearchParams API 用于处理 URL 之中的查询字符串,即?之后的部分。
// 没有部署这个API的浏览器,可以用url-search-params这个垫片库。
var paramsString = 'q=URLUtils.searchParams&topic=api';
var searchParams = new URLSearchParams(paramsString);
// URLSearchParams有以下方法,用来操作某个参数。
// has():返回一个布尔值,表示是否具有某个参数
// get():返回指定参数的第一个值
// getAll():返回一个数组,成员是指定参数的所有值
// set():设置指定参数
// delete():删除指定参数
// append():在查询字符串之中,追加一个键值对
// toString():返回整个查询字符串
searchParams.has('topic') // true
searchParams.get('topic') // "api"
searchParams.getAll('topic') // ["api"]
searchParams.get('foo') // null,注意Firefox返回空字符串
searchParams.set('foo', 2);
searchParams.get('foo') // 2
searchParams.append('topic', 'webdev');
searchParams.toString() // "q=URLUtils.searchParams&topic=api&foo=2&topic=webdev"
searchParams.append('foo', 3);
searchParams.getAll('foo') // [2, 3]
searchParams.delete('topic');
searchParams.toString() // "q=URLUtils.searchParams&foo=2&foo=3"
// URLSearchParams还有三个方法,用来遍历所有参数。
// keys():遍历所有参数名
// values():遍历所有参数值
// entries():遍历所有参数的键值对
// 上面三个方法返回的都是Iterator对象。
var searchParams = new URLSearchParams('key1=value1&key2=value2');
for (var key of searchParams.keys()) {
console.log(key);
}
// key1
// key2
for (var value of searchParams.values()) {
console.log(value);
}
// value1
// value2
for (var pair of searchParams.entries()) {
console.log(pair[0] + ', ' + pair[1]);
}
// key1, value1
// key2, value2
// 在Chrome浏览器之中,URLSearchParams实例本身就是Iterator对象,与entries方法返回值相同。所以,可以写成下面的样子。
for (var p of searchParams) {
console.log(p);
}
// 下面是一个替换当前URL的例子。
// URL: https://example.com?version=1.0
var params = new URLSearchParams(location.search.slice(1));
params.set('version', 2.0);
window.history.replaceState({}, '', `${location.pathname}?${params}`);
// URL: https://example.com?version=2.0
// URLSearchParams实例可以当作 POST 数据发送,所有数据都会 URL 编码。
let params = new URLSearchParams();
params.append('api_key', '1234567890');
fetch('https://example.com/api', {
method: 'POST',
body: params
}).then()
// DOM的a元素节点的searchParams属性,就是一个URLSearchParams实例。
var a = document.createElement('a');
a.href = 'https://example.com?filter=api';
a.searchParams.get('filter') // "api"
// URLSearchParams还可以与URL接口结合使用。
var url = new URL(location);
var foo = url.searchParams.get('foo') || 'somedefault';
</script>
文章来源地址https://www.toymoban.com/news/detail-514408.html
文章来源:https://www.toymoban.com/news/detail-514408.html
到了这里,关于详解URLSearchParams的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!