使用 JavaScript 将相对路径转换为绝对路径 [英] Convert relative path to absolute using JavaScript
本文介绍了使用 JavaScript 将相对路径转换为绝对路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一个函数,它给了我这样的网址:
There's a function, which gives me urls like:
./some.css
./extra/some.css
../../lib/slider/slider.css
它总是一个相对路径.
假设我们知道页面的当前路径,例如 http://site.com/stats/2012/
,不知道如何将这些相对路径转换为真实路径?
Let's think we know current path of the page, like http://site.com/stats/2012/
, not sure how do I convert these relative paths to real ones?
我们应该得到类似的东西:
We should get something like:
./some.css => http://site.com/stats/2012/some.css
./extra/some.css => http://site.com/stats/2012/extra/some.css
../../lib/slider/slider.css => http://site.com/lib/slider/slider.css
没有 jQuery,只有普通的 javascript.
No jQuery, only vanilla javascript.
推荐答案
应该这样做:
function absolute(base, relative) {
var stack = base.split("/"),
parts = relative.split("/");
stack.pop(); // remove current file name (or empty string)
// (omit if "base" is the current folder without trailing slash)
for (var i=0; i<parts.length; i++) {
if (parts[i] == ".")
continue;
if (parts[i] == "..")
stack.pop();
else
stack.push(parts[i]);
}
return stack.join("/");
}
这篇关于使用 JavaScript 将相对路径转换为绝对路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文