529 Stimmen

Den aktuellen Domänennamen mit Javascript abrufen (nicht den Pfad usw.)

Ich habe vor, zwei Domänennamen für dieselbe Website zu kaufen. Je nachdem, welche Domäne verwendet wird, möchte ich leicht unterschiedliche Daten auf der Seite bereitstellen. Gibt es eine Möglichkeit, den tatsächlichen Domänennamen zu ermitteln, von dem die Seite geladen wird, damit ich weiß, wie ich meinen Inhalt ändern muss?

Ich habe mich nach solchen Dingen umgesehen, aber das meiste davon funktioniert nicht so, wie ich es möchte.

Zum Beispiel bei der Verwendung von

document.write(document.location)

auf JSFiddle er gibt zurück

http://fiddle.jshell.net/_display/

d.h. der eigentliche Pfad oder was auch immer das ist.

1 Stimmen

Ich bin mir nicht sicher, ob ich genau verstehe, was Sie vorhaben, aber Sie sollten sich vielleicht einmal mit MDN in diesem Zusammenhang

2 Stimmen

Ein bisschen vom Thema abschweifend, aber Sie könnten auch in Erwägung ziehen, Subdomains zu haben, anstatt zwei separate Domainnamen. Etwas wie premium.random.com y free.random.com

1voto

Luca Punkte 21

Auch wenn sich die Frage auf den Domänennamen bezieht, umfasst die akzeptierte Lösung die Subdomäne (z. B. erhalten Sie blog.example.com aufrufen location.hostname ). Für die Zukunft schlage ich einen Einzeiler vor, um nur die Domäne zu extrahieren (z. B. https://blog.example.com/index.html -> example.com ) als Micheal.

location.hostname.split('.').filter(( _, i) => i < 2).join('.')

Aufgepasst! Sie kann brechen, wenn die TLD aus zwei Teilen besteht (z.B.. .co.uk ). Wenn das Ihr Fall ist, ändern Sie 2 mit 3 im obigen Code.

1voto

edelwater Punkte 2347

https://publicsuffix.org/list/

( https://github.com/publicsuffix/list/blob/master/public_suffix_list.dat )

erforderlich ist, um alle Domänen ohne Suffixe korrekt zu analysieren, wird die Arbeit mit Punkten wie in den obigen Antworten nie ganz korrekt sein. Sie können die obigen Code-Beispiele mit der öffentlichen Suffixe-Datendatei abgleichen, um dies zu erkennen.

Sie können Ihren eigenen Code auf dieser Grundlage entwickeln oder ein Paket wie https://www.npmjs.com/package/tldts

getDomainWithoutSuffix('google.com');        // returns `google`
getDomainWithoutSuffix('fr.google.com');     // returns `google`
getDomainWithoutSuffix('fr.google.google');  // returns `google`
getDomainWithoutSuffix('foo.google.co.uk');  // returns `google`
getDomainWithoutSuffix('t.co');              // returns `t`
getDomainWithoutSuffix('fr.t.co');           // returns `t`
getDomainWithoutSuffix('https://user:password@example.co.uk:8080/some/path?and&query#hash'); // returns `example`

1voto

majic majic Punkte 11

Können Sie damit die Portnummer überflüssig machen.

 var hostname = window.location.host;
 var urlWithoutPort = `https://${hostname}`;
 console.log(urlWithoutPort);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X