You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
759 B
JavaScript
31 lines
759 B
JavaScript
import defined from "./defined.js";
|
|
|
|
var a;
|
|
|
|
/**
|
|
* Given a URL, determine whether that URL is considered cross-origin to the current page.
|
|
*
|
|
* @private
|
|
*/
|
|
function isCrossOriginUrl(url) {
|
|
if (!defined(a)) {
|
|
a = document.createElement("a");
|
|
}
|
|
|
|
// copy window location into the anchor to get consistent results
|
|
// when the port is default for the protocol (e.g. 80 for HTTP)
|
|
a.href = window.location.href;
|
|
|
|
// host includes both hostname and port if the port is not standard
|
|
var host = a.host;
|
|
var protocol = a.protocol;
|
|
|
|
a.href = url;
|
|
// IE only absolutizes href on get, not set
|
|
// eslint-disable-next-line no-self-assign
|
|
a.href = a.href;
|
|
|
|
return protocol !== a.protocol || host !== a.host;
|
|
}
|
|
export default isCrossOriginUrl;
|