在看LABjs源代码时,发现里面有个将相对地址转为绝对地址的函数,将其拿出纪录如下:
复制代码 代码如下:
function canonical_uri(src, base_path)
{
var root_page = /^[^?#]*///.exec(location.href)[0],
root_domain = /^/w+/://////?[^//]+/.exec(root_page)[0],
absolute_regex = /^/w+/://///;
// is `src` is protocol-relative (begins with // or ///), prepend protocol
if (/^//////?/.test(src))
{
src = location.protocol + src;
}
// is `src` page-relative? (not an absolute URL, and not a domain-relative path, beginning with /)
else if (!absolute_regex.test(src) && src.charAt(0) != "/")
{
// prepend `base_path`, if any
src = (base_path || "") + src;
}
// make sure to return `src` as absolute
return absolute_regex.test(src) ? src : ((src.charAt(0) == "/" ? root_domain : root_page) + src);
}
复制代码 代码如下:
function getAbsoluteUrl(url){
var img = new Image();
img.src = url; // 设置相对路径给Image, 此时会发送出请求
url = img.src; // 此时相对路径已经变成绝对路径
img.src = null; // 取消请求
return url;
}
getAbsoluteUrl("showroom/list");
复制代码 代码如下:
function getAbsoluteUrl(url){
var a = document.createElement_x_x_x('A');
a.href = url; // 设置相对路径给Image, 此时会发送出请求
url = a.href; // 此时相对路径已经变成绝对路径
return url;
}
getAbsoluteUrl("showroom/list");
新闻热点
疑难解答
图片精选