// Copyright 2014 Simon Lydell | |
// X11 (“MIT”) Licensed. (See LICENSE.) | |
void (function(root, factory) { | |
if (typeof define === "function" && define.amd) { | |
define(factory) | |
} else if (typeof exports === "object") { | |
module.exports = factory() | |
} else { | |
root.resolveUrl = factory() | |
} | |
}(this, function() { | |
function resolveUrl(/* ...urls */) { | |
var numUrls = arguments.length | |
if (numUrls === 0) { | |
throw new Error("resolveUrl requires at least one argument; got none.") | |
} | |
var base = document.createElement("base") | |
base.href = arguments[0] | |
if (numUrls === 1) { | |
return base.href | |
} | |
var head = document.getElementsByTagName("head")[0] | |
head.insertBefore(base, head.firstChild) | |
var a = document.createElement("a") | |
var resolved | |
for (var index = 1; index < numUrls; index++) { | |
a.href = arguments[index] | |
resolved = a.href | |
base.href = resolved | |
} | |
head.removeChild(base) | |
return resolved | |
} | |
return resolveUrl | |
})); |