使用 JavaScript 将相对路径转换为绝对路径 [英] Convert relative path to absolute using JavaScript

查看:49
本文介绍了使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆