URLSearchParams
接口定义了很多个用来处置惩罚 URL 参数串的要领。
基础运用要领以下
var paramsString = "q=URLUtils.searchParams&topic=api" // location.search.slice(1)
var searchParams = new URLSearchParams(paramsString);
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()
遍历一切参数的键值对
URLSearchParams实例能够看成POST数据发送,一切数据都邑URL编码。
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';