关于更多公共类的操做方法,能够关注下小滑轮网站 http://www.feiaci.com/#/self/...dom
/** * 给定 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) }) }