| // 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 | |
| })); |