Ich plane, zwei Domainnamen für dieselbe Site zu kaufen. Je nachdem, welche Domain verwendet wird, plane ich, leicht unterschiedliche Daten auf der Seite bereitzustellen. Gibt es eine Möglichkeit für mich, den tatsächlichen Domainnamen zu ermitteln, von dem die Seite geladen wird, damit ich weiß, in was ich meinen Inhalt ändern soll?
Ich habe mich nach solchen Dingen umgesehen, aber das meiste funktioniert nicht so, wie ich es möchte.
Zum Beispiel bei der Verwendung
document.write(document.location)
auf JSFiddle wird zurückgegeben
http://fiddle.jshell.net/_display/
dh der tatsächliche Weg oder was auch immer das ist.
javascript
domain-name
Freesnöw
quelle
quelle
premium.random.com
undfree.random.com
Antworten:
Wie wäre es mit:
Das
location
Objekt verfügt tatsächlich über eine Reihe von Attributen, die sich auf verschiedene Teile der URL beziehenquelle
window.location.hostname
wenn Sie nicht wollen, dieport
(wiehttp://localhost:3000/
,window.location.host = 'localhost:3000'
undwindow.location.hostname = 'localhost'
window.location.host
wird manchmal den Hafen zurückgeben.Versuchen Sie, im Skript auszuführen: Pfad: http: // localhost: 4200 / Landung? Query = 1 # 2
Der Standort hat folgende Werte:
quelle
Wenn Sie nicht am Hostnamen (zum Beispiel
www.beta.example.com
), sondern am Domainnamen (zum Beispielexample.com
) interessiert sind , funktioniert dies für gültige Hostnamen:quelle
amazon.co.uk
. Aber definitiv nicht "fast alle internationalen TLDs". Tatsächlich funktioniert es mit 100% der in Wikipedia gefundenen LändercodesBeispiele
In der vorherigen Version wurde die vollständige Domain (einschließlich der Subdomain) abgerufen. Jetzt wird je nach Präferenz die richtige Domain ermittelt. Wenn also ein zweites Argument als wahr angegeben wird, enthält es die Unterdomäne, andernfalls wird nur die 'Hauptdomäne' zurückgegeben.
quelle
localhost/test.php
und dass die richtige Antwortlocalhost
.google.co.uk
Sie "co.uk" zurück, was nicht korrekt ist ...Sie können es einfach vom Standortobjekt in Javascript erhalten:
Die URL dieser Seite lautet beispielsweise:
Dann können wir die genaue Domäne mit den folgenden Eigenschaften des Standortobjekts erhalten:
Sie können die vollständige Domain erstellen mit:
Was in diesem Beispiel zurückkehrt
http://www.stackoverflow.com
Außerdem können wir die vollständige URL und auch den Pfad mit anderen Eigenschaften des Standortobjekts erhalten:
quelle
Wenn Sie nur an dem Domainnamen interessiert sind und die Subdomain ignorieren möchten, müssen Sie sie aus
host
und heraus analysierenhostname
.Der folgende Code macht das:
http://jsfiddle.net/5U366/4/
quelle
Da diese Frage nach dem Domainnamen und nicht nach dem Hostnamen fragt , sollte eine korrekte Antwort lauten
Dies funktioniert auch für Hostnamen wie www.example.com .
quelle
Verwenden
window.location
hat eine Reihe von Eigenschaften. Siehe hier für eine Liste von ihnen.quelle
Wenn Sie einen vollständigen Domain-Ursprung wünschen, können Sie Folgendes verwenden:
Und wenn Sie nur die Domain erhalten möchten, können Sie Folgendes verwenden:
Sie haben aber noch andere Möglichkeiten. Schauen Sie sich die Eigenschaften an in:
quelle
Was ist mit dieser Funktion?
Dies stimmt nur mit dem Domainnamen überein, unabhängig davon, ob es sich um eine Subdomain oder eine Hauptdomain handelt
quelle
Wenn Sie einen Domainnamen in JavaScript erhalten möchten, verwenden Sie einfach den folgenden Code:
Wenn Sie den URL-Pfad der Webseite benötigen, um auf den Pfad der Web-URL zugreifen zu können, verwenden Sie dieses Beispiel:
quelle
In meinem Fall ist window.location.origin die beste Übereinstimmung
quelle
Ich bin neu in JavaScript, kann aber nicht einfach Folgendes verwenden: document.domain ?
Beispiel:
Ausgabe:
oder
Je nachdem, was Sie auf Ihrer Website verwenden.
quelle
Ich denke, es sollte so einfach sein:
url.split("/")[2]
quelle
Wenn ich ein paar Antworten aus dem oben Gesagten kombiniere, funktioniert das Folgende für mich sehr gut, um Cookies zu zerstören:
Funktioniert für IP-Adressen mit Ports, z. B. 0.0.0.0:8000 usw., sowie für komplexe Domänen wie die
app.staging.example.com
Rückgabe.example.com
=> ermöglicht das domänenübergreifende Setzen und Zerstören von Cookies.quelle
Wenn Sie den Länderdomainnamen möchten - zum Beispiel, um .com zu extrahieren Länderdomänenname von stackoverflow.com extrahiert:
(ES6):
(ES5):
Verwenden Sie dann einfach die Funktion, um den Wert einer Variablen zuzuweisen:
quelle
In der Tat funktionierte für mich, während ich PHP nicht verwenden konnte
Ich habe gerade getestet, dass es dank des oben in einigen Antworten erwähnten Ansatzes funktioniert hat, so schnell und verifiziert, dass es funktioniert hat
quelle