Odpowiedzi:
Nie potrzebujesz do tego jQuery, wystarczy prosty javascript:
alert(document.domain);
Zobacz to w akcji:
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);
Aby uzyskać dalsze wartości związane z domeną, sprawdź właściwości window.location
online. Może się okazać, że location.host
jest to lepsza opcja, ponieważ jej zawartość może różnić się od document.domain
. Na przykład adres URL http://192.168.1.80:8080
będzie zawierał tylko adres ipad document.domain
, ale zarówno adres IP , jak i numer portu location.host
.
window.location.host
(jak opublikował bibby). Właśnie naprawiłem błąd document.domain
polegający na ustawianiu domeny głównej zamiast subdomeny.
document.location.origin
zwraca undefined
.
EDYTOWAĆ:
Jeśli nie potrzebujesz obsługi IE10, możesz po prostu użyć: document.location.origin
Oryginalna odpowiedź, jeśli potrzebujesz wsparcia ze starszych wersji
Możesz uzyskać to wszystko i więcej, sprawdzając obiekt lokalizacji:
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:"
}
więc:
location.host
byłaby domeną, w tym przypadku stackoverflow.com. Aby uzyskać pełną pierwszą część adresu URL, możesz użyć:
location.protocol + "//" + location.host
co w tym przypadku byłoby http://stackoverflow.com
Nie jest wymagane jQuery.
document.location.origin
co spowoduje przejście do https://stackoverflow.com . Ta metoda zawiera odpowiedni protokół
Jeśli potrzebujesz stringów, tak jak ja, użyj tej funkcji - to naprawdę działa.
function getHost(url)
{
var a = document.createElement('a');
a.href = url;
return a.hostname;
}
Ale zwróć uwagę, że jeśli w adresie URL znajduje się subdomena (np. Www.), Zostanie ona zwrócona z nazwą hosta. I odwrotnie, jeśli nie ma subdomeny, nazwa hosta też jej nie będzie.
getHost('http://www.google.com') == 'google.com'
podczas gdy byłoby to prawdą:getHost('http://google.com') == 'google.com'
Możesz użyć poniższych kodów, aby uzyskać różne parametry bieżącego adresu URL
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);
jQuery nie jest potrzebne, użyj prostego javascript:
document.domain
var part = location.hostname.split('.');
var subdomains = part.shift();
var upperleveldomains = part.join('.');
domeny drugiego poziomu, możesz użyć
var sleveldomain = parts.slice(-2).join('.');
Sprawdź to
alert(window.location.hostname);
zwróci to nazwę hosta jako www.domain.com
o ile widzę, nikt nie opublikował rozwiązania jquery poza natywnym kodem javascript.
Musisz przekazać adres URL jako ciąg znaków, a dostanie on hosta bez użycia wyrażenia regularnego.
function getHostFromUrl(urlString) {
return $a = $('<a>', {
'href': urlString
}).prop('host');
}
//If url is something.domain.com this returns -> domain.com
function getDomain() {
return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
- Jamie Zawinski