使用 JavaScript 将相对路径转换为绝对路径

2023-12-12

有一个函数,它给我这样的网址:

./some.css
./extra/some.css
../../lib/slider/slider.css

它始终是相对路径。

假设我们知道页面的当前路径,例如http://site.com/stats/2012/,不确定如何将这些相对路径转换为真实路径?

我们应该得到类似的东西:

./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。


最简单、最有效、最正确的方法就是使用URL api.

new URL("http://www.stackoverflow.com?q=hello").href;
//=> "http://www.stackoverflow.com/?q=hello"

new URL("mypath","http://www.stackoverflow.com").href;
//=> "http://www.stackoverflow.com/mypath"

new URL("../mypath","http://www.stackoverflow.com/search").href
//=> "http://www.stackoverflow.com/mypath"

new URL("../mypath", document.baseURI).href
//=> "https://stackoverflow.com/questions/mypath"

在性能方面,该解决方案与使用字符串操作相当,并且速度是创建的两倍a tag.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaScript 将相对路径转换为绝对路径 的相关文章

随机推荐