diff --git a/src/misc/utils.ts b/src/misc/utils.ts index 6131fbd836..5c86ccd94c 100644 --- a/src/misc/utils.ts +++ b/src/misc/utils.ts @@ -281,14 +281,14 @@ export class Utils { return null; } - const hasProtocol = uriString.indexOf('://') > -1; - if (!hasProtocol && uriString.indexOf('.') > -1) { - uriString = 'http://' + uriString; - } else if (!hasProtocol) { - return null; + let url = Utils.getUrlObject(uriString); + if (url == null) { + const hasHttpProtocol = uriString.indexOf('http://') === 0 || uriString.indexOf('https://') === 0; + if (!hasHttpProtocol && uriString.indexOf('.') > -1) { + url = Utils.getUrlObject('http://' + uriString); + } } - - return Utils.getUrlObject(uriString); + return url; } private static getUrlObject(uriString: string): URL { @@ -298,6 +298,12 @@ export class Utils { } else if (typeof URL === 'function') { return new URL(uriString); } else if (window != null) { + const hasProtocol = uriString.indexOf('://') > -1; + if (!hasProtocol && uriString.indexOf('.') > -1) { + uriString = 'http://' + uriString; + } else if (!hasProtocol) { + return null; + } const anchor = window.document.createElement('a'); anchor.href = uriString; return anchor as any;