.. | ||
test | ||
.jshintrc | ||
bower.json | ||
changelog.md | ||
component.json | ||
LICENSE | ||
package.json | ||
readme.md | ||
resolve-url.js |
Overview
Like Node.js’ path.resolve
/url.resolve
for the browser.
var resolveUrl = require("resolve-url")
window.location
// https://example.com/articles/resolving-urls/edit
resolveUrl("remove")
// https://example.com/articles/resolving-urls/remove
resolveUrl("/static/scripts/app.js")
// https://example.com/static/scripts/app.js
// Imagine /static/scripts/app.js contains `//# sourceMappingURL=../source-maps/app.js.map`
resolveUrl("/static/scripts/app.js", "../source-maps/app.js.map")
// https://example.com/static/source-maps/app.js.map
resolveUrl("/static/scripts/app.js", "../source-maps/app.js.map", "../coffee/app.coffee")
// https://example.com/static/coffee/app.coffee
resolveUrl("//cdn.example.com/jquery.js")
// https://cdn.example.com/jquery.js
resolveUrl("http://foo.org/")
// http://foo.org/
Installation
npm install resolve-url
bower install resolve-url
component install lydell/resolve-url
Works with CommonJS, AMD and browser globals, through UMD.
Usage
resolveUrl(...urls)
Pass one or more urls. Resolves the last one to an absolute url,
using the previous ones and window.location
.
It’s like starting out on window.location
, and then
clicking links with the urls as href
attributes in order,
from left to right.
Unlike Node.js’ path.resolve
,
this function always goes through all of the arguments, from left to
right. path.resolve
goes from right to left and only in the
worst case goes through them all. Should that matter.
Actually, the function is really like clicking a lot of
links in series: An actual <a>
gets its
href
attribute set for each url! This means that the url
resolution of the browser is used, which makes this module really
light-weight.
Also note that this functions deals with urls, not paths, so in that
respect it has more in common with Node.js’ url.resolve
.
But the arguments are more like path.resolve
.
Tests
Run npm test
, which lints the code and then gives you a
link to open in a browser of choice (using testling
).