Die aktuelle Domain in Form *Subdomain**Domain Name**Top-Level Domain* einer Internetseite wird in Javascript mit

window.location.host

ermittelt. Hierbei werden ebenfalls Subdomains beachtet. Die Top-Level Domain erhält man mit:

document.domain

Domain Name aus einer URL ermitteln

Um in Javascript den Domain Name aus einer URL zu ermitteln benötigt es keinen großen Aufwand. Für das Ermitteln des Domain Namens aus einer URL in Javascript verwende folgende Funktion:

var getdomainname = function(url) {
	return url.split('/')[2].split(':')[0];
}

In diesem Einzeiler wird der URL String zweifach geteilt. Anhand von /, : und jeweils mit den passenden teilen des Arrays weitergearbeitet. Diese Array Einzelteile werden durch [2] und [0] definiert. Reinen PHP Programmierern wird diese Vorgehensweise suspekt sein. Eine alternative Lösungsmöglichkeit stellt das ermitteln der Domain mittels einem Regulären Ausdruck dar.

getdomainname('http://www.example.com/example/example');

Der Rückgabewert hierbei ist „www.example.com“.

Keine Kommentare »
 

Da die Statistik sehr viele Suchanfragen nach dem oben betitelten Thema verzeichnet, habe ich mich entschlossen darüber zu schreiben. Allgemein ist „Javascript: prüfen ob ein Element existiert“ ein gutes Google Thema. In Javascript ist das prüfen ob ein Element existiert bzw. vorhanden ist ebenso einfach wie in jQuery. Zum Javascriptcode:

if (document.getElementById('divname')) {
// Code ausführen, wenn DIV Element vorhanden. Funktioniert!
}

Der Selektor ist in purem Javascript auf die div id beschränkt. Sehr ärgerlich ist das hierbei keine Klassen selektiert werden können. jQuery bietet diese Möglichkeit.

4 Kommentare »
 

Öfter habe ich nun schon im Web gelesen, das Beispielcode gesucht wird, wie es in C# möglich ist eine Internetseite als Rückgabewert einer Methode als String zurück zu erhalten. Ich verwende hierbei die Klasse WebRequest für die HTTP Anfrage und den Streamreader zum lesen des Ergebnisses. Folgender, gut kommentierter, Codeschnippsel den ich für ein kleines Projekt erstellt habe sollte dir weiterhelfen:

/*
 * [url = string] die URL
 * [buffersize = int] Größe des Zwischenspeichers
 */
private static string http_get_as_string(string url, int buffersize)
{
        // Initialisiert den Webrequest
	WebRequest request = WebRequest.Create(url);
 
        // Der Anfragentyp. Wir übertragen keine POST Daten
	request.Method = "GET";
 
        // Sollte keine nach 10000 Millisekunden keine Antwort kommen abbrechen
	request.Timeout = 10000;
 
        // Fehler Abfangen für den Fall das keine Antwort kommt
	try
 	{
                // Die Antwort des Webservers erhalten
		HttpWebResponse response = (HttpWebResponse) request.GetResponse();
 
                // Gibt den Datenstream der Antwort zurück
                Stream resource = response.GetResponseStream();
 
		// Den Zwischenspeicher erstellen
		byte[] buffer = new byte[buffersize];
 
		// Hier wird gespeichert wie viel Bytes noch zu lesen sind
		int toread = 0;
 
		// Der Inhalt der Internetseite
		string content = "";
 
		// Der Einlesevorgang in einer Schleife. Stück für Stück. Solange noch Daten vorhanden sind		
		do
		{					
			// Lesen aus dem Stream. Maximal die Zwischenspeichergröße auf einmal
			toread = resource.Read(buffer, 0, buffersize);
 
			// Prüft ob noch Daten zum Codieren da sind			
			if (toread != 0)
			{
				// Daten UTF-8 codieren
				content += Encoding.UTF8.GetString(buffer, 0, toread);						
			}
		}
		while(toread > 0);
		return content;
 	}
	catch (WebException e)
	{
 		return "";
 	}
}

Die Funktion ermöglicht nicht nur das einlesen von HTML Code sondern ebenso das einlesen von XML, CSS oder Javascript Datein. Kurzum alle Dateien die über HTTP erreichbar sind. Für Fragen steht die Kommentarfunktion zur Verfügung.

Keine Kommentare »
 

Ich stand vor kurzem vor dem Problem in Javascript zu prüfen ob ein DIV Element in einem HTML Dokument existiert. Mir stand aus vorangehender Entwicklung das jQuery Framework zur Verfügung. Dabei produzierte ich folgenden Code:

if ($('div#divname')) {
// Code ausführen, wenn DIV Element vorhanden. Funktioniert leider nicht
}

Das klappte leider nicht, da der Einsatz der jQuery Selektor Funktion immer ein Objekt zurückliefert. Mir war klar das es sich hierbei um ein leeres Objekt handelt und ich nur auf die Länge prüfen müsste. Sollte die Länge 0 sein ist der DIV im aktuellen Dokument nicht vorhanden. Hier nun der Code mit dem es entgültig klappte:

if ($('div#divname').length > 0) {
// Code ausführen, wenn DIV Element vorhanden. Funktioniert!
}

Ich verwende > anstatt ==, da diese Methode auch bei CSS Klassen funktioniert und keine Nachteile in der Performance bietet. Klassen können mehrfach im Dokument vorkommen. Deswegen kann die Länge größer als 1 sein.

Mehr zum Thema jQuery Selektoren

3 Kommentare »