Czy istnieje naprawdę łatwy sposób na rozpoczęcie od pełnego adresu URL:
document.location.href = "http://aaa.bbb.ccc.com/asdf/asdf/sadf.aspx?blah"
I wyodrębnij tylko część hosta:
aaa.bbb.ccc.com
Musi istnieć funkcja JavaScript, która robi to niezawodnie, ale nie mogę jej znaleźć.
javascript
hostname
Dustin Getz
źródło
źródło
window.location.origin
jest niezdefiniowany w IE9 (zgodnie z linkiem, to IE11 +). Ta odpowiedź pomogła.Możesz połączyć protokół lokalizacji i hosta:
W przypadku adresu URL, powiedzmy
'http://stackoverflow.com/questions'
, wróci'http://stackoverflow.com'
źródło
Zastosowanie
document.location
przedmiotu i jegohost
ORhostname
właściwości.źródło
Przyjęta odpowiedź nie działała dla mnie, ponieważ chciałem móc pracować z dowolnym dowolnym adresem URL, a nie tylko bieżącym adresem URL strony.
Spójrz na
URL
obiekt :źródło
Istnieją dwa sposoby. Pierwsza jest wariantem innej odpowiedzi tutaj, ale ta odpowiada na porty inne niż domyślne:
Ale wolę tę prostszą metodę (która działa z dowolnym ciągiem URI):
źródło
posługiwać się
i dla: „ http://aaa.bbb.ccc.ddd.com/sadf.aspx?blah ”
dostaniesz: http://aaa.bbb.ccc.ddd.com/
źródło
Próbować
lub
źródło
Jest inny hack, którego używam i nigdy nie widziałem w żadnej odpowiedzi StackOverflow: użycie atrybutu „src” obrazu da pełną ścieżkę bazową witryny. Na przykład :
Na zasadzie jak adres URL
http://domain.com/somesite/index.html
,root
zostanie ustawionyhttp://domain.com/somesite/
. Działa to również dla localhost lub dowolnego poprawnego podstawowego adresu URL.Pamiętaj, że spowoduje to nieudane żądanie HTTP dla
$
obrazu zastępczego. Aby tego uniknąć, możesz użyć istniejącego obrazu, z niewielkimi zmianami kodu.Inny wariant wykorzystuje fałszywy link, bez skutków ubocznych na żądania HTTP:
Nie przetestowałem tego jednak w każdej przeglądarce.
źródło
Sprawdź to:
zwróci to nazwę hosta jako
www.domain.com
i:
zwróci nazwę domeny z portem podobnym do
www.example.com:80
Aby uzyskać pełne informacje, sprawdź witrynę programisty Mozilla .
źródło
Chciałbym coś sprecyzować. Jeśli ktoś chce uzyskać cały adres URL ze ścieżką, której potrzebuję, może użyć:
źródło
Wiem, że to trochę za późno, ale zrobiłem czystą małą funkcję z małą składnią ES6
Może być również napisany w ES5 jak
Oczywiście IE nie obsługuje
Object.assign
, ale w mojej branży to nie ma znaczenia.źródło
Regex zapewnia znacznie większą elastyczność.
źródło