jquery, domain, URL abrufen


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.


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.



@ 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)


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.


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);

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

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.


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('.');

1

Überprüfen Sie dies

alert(window.location.hostname);

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


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');
}

-2
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-z]+.)/,"");
}

-4
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.