jquery, domain, URL abrufen

140

Wie kann ich den Domainnamen mit jquery bekommen?

AlexC
quelle

Antworten:

335

Sie benötigen dafür kein jQuery, da einfaches Javascript ausreicht:

alert(document.domain);

Sehen Sie es in Aktion:

console.log("Output;");  
console.log(location.hostname);
console.log(document.domain);
alert(window.location.hostname)

console.log("document.URL : "+document.URL);
console.log("document.location.href : "+document.location.href);
console.log("document.location.origin : "+document.location.origin);
console.log("document.location.hostname : "+document.location.hostname);
console.log("document.location.host : "+document.location.host);
console.log("document.location.pathname : "+document.location.pathname);

Weitere domänenbezogene Werte finden Sie in den Eigenschaften von window.locationOnline. Möglicherweise location.hostist dies eine bessere Option, da der Inhalt davon abweichen kann document.domain. Beispielsweise enthält die URL http://192.168.1.80:8080nur die IP-Adresse document.domain, aber sowohl die IP-Adresse als auch die Portnummer location.host.

Sampson
quelle
7
@ rob.alarcon Dies ist eine W3C-Empfehlung und wird von alten und neuen Browsern sehr umfassend unterstützt. Das einzige mir bekannte Problem ist, dass Sie in einigen Browsern ( z. B. Firefox ) in diese Eigenschaft schreiben können (schreibgeschützt gemäß der Spezifikation), solange der neue Wert eine Subdomain der ursprünglichen Domain ist.
Sampson
4
Ich würde eigentlich empfehlen, window.location.host(wie bibby geschrieben). Ich habe gerade einen Fehler behoben document.domain, bei dem anstelle der Subdomain die Stammdomäne festgelegt wurde.
Derek Morrison
In IE11 document.location.originkehrt zurück undefined.
Timothy Buktu
113

BEARBEITEN:

Wenn Sie IE10 nicht unterstützen müssen, können Sie einfach Folgendes verwenden: document.location.origin

Ursprüngliche Antwort, wenn Sie Unterstützung benötigen

All dies und mehr erhalten Sie, indem Sie das Standortobjekt untersuchen:

location = {
  host: "stackoverflow.com",
  hostname: "stackoverflow.com",
  href: "http://stackoverflow.com/questions/2300771/jquery-domain-get-url",
  pathname: "/questions/2300771/jquery-domain-get-url",
  port: "",
  protocol: "http:"
}

so:

location.host 

wäre die Domain, in diesem Fall stackoverflow.com. Für den vollständigen ersten Teil der URL können Sie Folgendes verwenden:

location.protocol + "//" + location.host

Dies wäre in diesem Fall http://stackoverflow.com

Keine jQuery erforderlich.

überleuchtet
quelle
@ Für die vollständige URL verwenden , warum nicht , document.location.originwas führen https://stackoverflow.com . Diese Methode enthält das entsprechende Protokoll
Nathileo
33

Ähnlich wie die Antwort davor gibt es

location.host

Der globale Standort bietet weitere interessante Fakten zur aktuellen URL. (Protokoll, Host, Port, Pfadname, Suche, Hash)

bibby
quelle
20

Wenn Sie wie ich einen String benötigen, verwenden Sie diese Funktion - sie funktioniert wirklich.

function getHost(url)
{
    var a = document.createElement('a');
    a.href = url;
    return a.hostname;
}

Beachten Sie jedoch, dass eine Subdomain (z. B. www.) In der URL mit dem Hostnamen zurückgegeben wird. Wenn es dagegen keine Subdomain gibt, hat der Hostname auch keine.

Vova Popov
quelle
Könnte @Vova Popov (oder jemand) bitte den letzten Satz klarstellen? "www. ar no www."?!?
Randall Cook
2
Er sagt, dass ein Hostname das WWW zurückgeben wird. Das ist Teil Ihrer Domain. Mit anderen Worten, dies wäre falsch: getHost('http://www.google.com') == 'google.com'während dies wahr wäre:getHost('http://google.com') == 'google.com'
Milimetric
9

Sie können die folgenden Codes verwenden, um verschiedene Parameter der aktuellen URL abzurufen

alert("document.URL : "+document.URL);
alert("document.location.href : "+document.location.href);
alert("document.location.origin : "+document.location.origin);
alert("document.location.hostname : "+document.location.hostname);
alert("document.location.host : "+document.location.host);
alert("document.location.pathname : "+document.location.pathname);
Nimesh07
quelle
Gibt es auch eine Möglichkeit, den Host zu erhalten, auf dem die js-Datei anstelle des Dokuments gehostet wird? Geldautomat. Ich manipuliere die js-Dateiserver-Seite, um diese "Verbindungs" -String zu erhalten, die funktioniert, aber ineffizient aussieht, da ich eine statische js-Datei bevorzugen würde.
yellowsir
6

jQuery wird nicht benötigt, verwenden Sie einfaches Javascript:

document.domain
Adam
quelle
Vielleicht ist es nicht nötig, aber so zu sagen, dass Sie die Frage nicht beantworten
Emiliano
Ja, ich bin kein Roboter, der die Frage buchstäblich beantwortet. Ich beantwortete die Frage pragmatisch mit dem Wissen, was das Endziel war und dass Sie jQuery nicht benötigen, um das Ziel zu erreichen.
Adam
Ich verstehe, aber diese Art von Antwort ist nicht vollständig. Wenn Sie möchten, können Sie eine bessere Antwort geben
Emiliano
3

document.baseURIgibt Ihnen die Domain + Port. Es wird verwendet, wenn ein Bild-Tag einen relativen anstelle eines absoluten Pfads verwendet. Wahrscheinlich schon gelöst, aber es könnte für andere Leute nützlich sein.

jsbeckr
quelle
2
var part = location.hostname.split('.');
var subdomains = part.shift();
var upperleveldomains = part.join('.');

Second-Level-Domain, die Sie möglicherweise verwenden

var sleveldomain = parts.slice(-2).join('.');
Muhammad Mohsin Muneer
quelle
1

Überprüfen Sie dies

alert(window.location.hostname);

Dies gibt den Hostnamen als www.domain.com zurück

code.rider
quelle
0

Soweit ich sehe, hat niemand die jquery-Lösung gepostet, außer dem nativen Javascript-Code.

Sie müssen die URL als Zeichenfolge übergeben, damit der Host ohne Verwendung von regulärem Ausdruck abgerufen wird.

function getHostFromUrl(urlString) {
    return $a = $('<a>', {
        'href': urlString
    }).prop('host');
}
Zoltán Süle
quelle
-2
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-z]+.)/,"");
}
Gubatron
quelle
-4
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}
Gubatron
quelle
3
Wenn die URL jedoch noch kein Präfix hat, wird der Domainname entfernt. Beispiel: "stackoveflow.com" wird zu "com"
Filipiz
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.- Jamie Zawinski
Msangel