JS Code block 代码块–URL

星期二, 2023-04-18 | Author: Lee | computer, 前端 | 780 views

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)
    })
}

Tags:

文章作者: Lee

本文地址: https://www.pomelolee.com/2393.html

除非注明,Pomelo Lee文章均为原创,转载请以链接形式标明本文地址

No comments yet.

Leave a comment

Search

文章分类

Links

Meta