URL相关操作
关于更多公共类的操作方法,可以关注下小滑轮网站
- 获取window.URL 实例
- 获取url中的参数
- 删除url中参数
- 增加url中的参数
- 获取URL里domain
- 返回url的pathName
- http协议转换为https
- 将dataURL转换为blob
blob2DataURL
/** * 给定 url, 返回一个 window.URL 实例 * @param url * @returns {*|URL} */ function parseUrl(url) { if (url.startsWith('//')) { url = location.protocol + url; } return new window.URL(url); } /** * 获取url中的参数 * @param name 为参数名 * @param url 为获取参数的URL */ function getUrlParam(name, url = window.location.href) { return parseUrl(url).searchParams.get(name); } /** * 删除url中参数 * @param name 为参数名 * @returns {String} */ function removeUrlParam(param, url = window.location.href) { let obj = parseUrl(url); obj.searchParams.delete(param); return obj.href; } /** * 增加url中的参数 * @param key * @param value * @param url * @returns {String} */ function addUrlParam(key, value, url = window.location.href) { let obj = parseUrl(url); obj.searchParams.set(key, value); return obj.href; } /** * 获取URL里domain * 举例: url = "http://jira.yqxiu.cn/browse/REFACT-17" * 返回 "jira.yqxiu.cn" */ function getUrlHost(url = window.location.href) { return parseUrl(url).host; } /** * 返回url的pathName * @param url */ function getPathName(url = window.location.href) { var obj = parseUrl(url); return obj.pathname; }
- http协议转换为https
- @param url
@return {*}
*/
function url2https(url) {
return addProtocol(url).replace(/^http:/, 'https:');
}/**
- 将dataURL转换为blob
- @param {*} dataURL
*/
function dataURL2Blob(dataURL) {
const arr = dataURL.split(',')
const type = arr[0].match(/:(.*?);/)[1]
const text = window.atob(arr[1]) // 将base64转换成文本
let n = text.length
const uint8Array = new Uint8Array(n)
while (n--) {uint8Array[n] = text.charCodeAt(n)
}
return new Blob([uint8Array], { type })
}/**
- 将blob转换为dataURL
- @param {*} blob
*/
function blob2DataURL(blob) {
return new Promise(resolve => {const fileReader = new FileReader() fileReader.onload = e => resolve(e.target.result) fileReader.readAsDataURL(blob)
})
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。