20.042015

Wie bekomme ich absolute URL's mit JavaScript

Der Umgang mit URL Formaten kann der absolute Albtraum sein. Wenn man sich einmal einen 0815 URL anschaut entscheiden nur ein paar Zeichen über Das Ziel eines URL's.

  • "/" am Anfang
  • "//" am Anfang
  • "?" am Anfang
  • "#" am Anfang
  • ... und so weiter

Was wenn wir aber trotzdem einen absoluten URL haben wollen? Der eine startet mit http der andere mit https. Hier gibt es einen Trick! Du kannst das Anker HTML-Element "A" verwenden um einen absoluten URL zu erhalten

Der Code

Ich benutze eine Funktion welche selber einen Funktion zurück gibt, um sicher zu gehen das nur ein Anker Element erzeugt wird:

var getAbsoluteUrl = (function() {
	var a;

	return function(url) {
		if(!a) a = document.createElement('a');
		a.href = url;

		return a.href;
	};
})();

Ganz egal wie du den URL String übergibst, am Ende kommt immer ein absoluter URL heraus. URL's mit "javascript:;" mal ausgenommen ;)