有一个函数,它给我这样的网址:
./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(使用前将#替换为@)