You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.0 KiB
47 lines
1.0 KiB
// 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 |
|
|
|
}));
|
|
|