Planuję kupić dwie nazwy domen dla tej samej strony. W zależności od używanej domeny planuję podać nieco inne dane na stronie. Czy istnieje sposób, aby wykryć rzeczywistą nazwę domeny, z której ładuje się strona, aby wiedzieć, na co mam zmienić treść?
Rozglądałem się za takimi rzeczami, ale większość z nich nie działa tak, jak tego chcę.
Na przykład podczas używania
document.write(document.location)
na JSFiddle zwraca
http://fiddle.jshell.net/_display/
tj. faktyczna ścieżka lub cokolwiek to jest.
javascript
domain-name
Freesnöw
źródło
źródło
premium.random.com
ifree.random.com
Odpowiedzi:
Co powiesz na:
location
Obiekt rzeczywiście ma wiele atrybutów odnoszące się do różnych części adresu URLźródło
window.location.hostname
jeśli nie chcesz dostaćport
(jakhttp://localhost:3000/
,window.location.host = 'localhost:3000'
iwindow.location.hostname = 'localhost'
window.location.host
czasami zwróci port.Spróbuj uruchomić w skrypcie: ścieżka: http: // localhost: 4200 / landing? Query = 1 # 2
Lokalizacja ma następujące wartości:
źródło
Jeśli nie jesteś zainteresowany nazwą hosta (na przykład
www.beta.example.com
), ale nazwą domeny (na przykładexample.com
), działa to w przypadku prawidłowych nazw hosta:źródło
amazon.co.uk
. Ale zdecydowanie nie „prawie wszystkie międzynarodowe domeny TLD”. W rzeczywistości działa ze 100% kodów krajów znalezionych w WikipediiPrzykłady
Poprzednia wersja otrzymywała pełną domenę (w tym subdomenę). Teraz określa właściwą domenę w zależności od preferencji. Tak więc, gdy drugi argument zostanie podany jako prawdziwy, będzie zawierać subdomenę, w przeciwnym razie zwróci tylko „domenę główną”
źródło
localhost/test.php
poprawnej odpowiedzilocalhost
.google.co.uk
, otrzymasz zwrot „co.uk”, co nie jest poprawne ...Możesz go łatwo pobrać z obiektu lokalizacji w JavaScript:
Na przykład adres URL tej strony to:
Następnie możemy uzyskać dokładną domenę z następującymi właściwościami obiektu lokalizacji:
możesz utworzyć pełną domenę za pomocą:
Który w tym przykładzie zwraca
http://www.stackoverflow.com
Dodając to, możemy uzyskać pełny adres URL, a także ścieżkę z innymi właściwościami obiektu lokalizacji:
źródło
Jeśli interesuje Cię tylko nazwa domeny i chcesz zignorować subdomenę, musisz ją przeanalizować z
host
ihostname
.Następujący kod to robi:
http://jsfiddle.net/5U366/4/
źródło
Ponieważ pytanie to wymaga nazwy domeny, a nie nazwy hosta, należy odpowiedzieć poprawnie
Działa to również w przypadku nazw hostów takich jak www.example.com .
źródło
Posługiwać się
window.location
ma wiele właściwości. Zobacz tutaj ich listę.źródło
Jeśli chcesz mieć pełne pochodzenie domeny, możesz użyć tego:
A jeśli chcesz uzyskać tylko domenę, skorzystaj z tego:
Ale masz inne opcje, spójrz na właściwości w:
źródło
Co z tą funkcją?
Spowoduje to dopasowanie tylko nazwy domeny, niezależnie od tego, czy jest to subdomena, czy domena główna
źródło
Jeśli chcesz uzyskać nazwę domeny w JavaScript, wystarczy użyć następującego kodu:
Jeśli potrzebujesz ścieżki URL strony internetowej, aby uzyskać dostęp do ścieżki URL, skorzystaj z tego przykładu:
źródło
w moim przypadku najlepsze dopasowanie to window.location.origin
źródło
Jestem nowy w JavaScript, ale nie możesz po prostu użyć: document.domain ?
Przykład:
Wynik:
lub
W zależności od tego, czego używasz na swojej stronie.
źródło
Myślę, że powinno to być tak proste:
url.split("/")[2]
źródło
Łącząc kilka odpowiedzi z powyższego, poniższe działania działają naprawdę dobrze dla mnie w przypadku niszczenia plików cookie:
Działa dla adresów IP z portami, np. 0.0.0.0:8000 itp., A także dla złożonych domen, takich jak
app.staging.example.com
returning.example.com
=>, pozwala na ustawienie i niszczenie plików cookie między domenami.źródło
Jeśli chcesz nazwę domeny kraju - na przykład, aby wyodrębnić .com z stackoverflow.com:
(ES6):
(ES5):
Następnie wystarczy użyć funkcji, aby przypisać wartość do var:
źródło
Rzeczywiście pracował dla mnie, podczas gdy nie mogłem używać PHP
Właśnie przetestowałem, że zadziałało dzięki podejściu wspomnianemu powyżej w niektórych odpowiedziach, więc szybko i zweryfikowałem, że zadziałało
źródło