jquery, alan adı, URL al


Yanıtlar:


335

Bunun için jQuery'ye ihtiyacınız yoktur, çünkü basit javascript yeterli olacaktır:

alert(document.domain);

Uygulamaya bakın:

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);

Alan adıyla ilgili daha fazla değer için window.locationçevrimiçi özelliklerine göz atın. location.hostİçeriği farklı olabileceğinden, bunun daha iyi bir seçenek olduğunu görebilirsiniz document.domain. Örneğin, URL http://192.168.1.80:8080yalnızca ipadresi içerecek document.domain, ancak hem ipadresi hem de port numarası içerecektir location.host.


7
@ rob.alarcon Bu bir W3C önerisidir ve eski ve yeni tarayıcılar arasında çok geniş bir desteğe sahiptir. Bildiğim tek sorun , yeni değer orijinal etki alanının bir alt etki alanı olduğu sürece bazı tarayıcıların ( Firefox gibi ) bu özelliğe (özellik başına salt okunur) yazmanıza izin vermesidir.
Sampson

4
Aslında window.location.host(gönderilen bibby olarak) kullanmanızı tavsiye ederim . Sadece document.domainalt etki alanı yerine kök etki alanına ayarlanmış bir hatayı düzelttim .
Derek Morrison

IE11'de document.location.origindöner undefined.
TimothyBuktu

113

DÜZENLE:

IE10'u desteklemeniz gerekmiyorsa, şunları kullanabilirsiniz: document.location.origin

Eski desteğe ihtiyacınız varsa orijinal yanıt

Tüm bunları ve daha fazlasını konum nesnesini inceleyerek elde edebilirsiniz:

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:"
}

yani:

location.host 

etki alanı olur, bu durumda stackoverflow.com. URL'nin ilk bölümü için şunları kullanabilirsiniz:

location.protocol + "//" + location.host

bu durumda http://stackoverflow.com

JQuery gerekmez.



@ Tam URL için, neden https://stackoverflow.com iledocument.location.origin sonuçlanacak olanları kullanmıyorsunuz ? Bu yöntem uygun protokolü içerir
Nathileo

33

Önceki cevaba benzer şekilde

location.host

Global konumu, mevcut url hakkında da daha eğlenceli gerçeklere sahiptir. (protokol, ana bilgisayar, bağlantı noktası, yol adı, arama, karma)


20

Benim gibi dizeden ihtiyacınız varsa, bu işlevi kullanın - gerçekten işe yarıyor.

function getHost(url)
{
    var a = document.createElement('a');
    a.href = url;
    return a.hostname;
}

Ancak, URL'de bir alt alan (ör. Www.) Varsa, ana bilgisayar adıyla birlikte döndürüleceğini unutmayın. Tersine, alt alan yoksa, ana bilgisayar adında da bir alt alan bulunmaz.


@Vova Popov (ya da birisi) lütfen son cümleyi açıklayabilir mi? "www. ar hayır www."?!?
Randall Cook

2
Bir .hostname'nin www döndüreceğini söylüyor. bu alan adınızın bir parçasıdır. Başka bir deyişle, bu yanlış olur: getHost('http://www.google.com') == 'google.com'oysa bu doğru olur:getHost('http://google.com') == 'google.com'
Milimetrik

9

Mevcut URL'nin farklı parametrelerini almak için aşağıdaki kodları kullanabilirsiniz

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);

belge yerine js dosyasının bulunduğu ana bilgisayar almak için bir yolu var mı? ATM. i çalışır ama statik bir js dosyasını tercih ediyorum çünkü etkisiz görünüyor bu "bağlantı" dize almak için js dosya sunucusu tarafı manipüle ediyorum.
yellowsir

6

jQuery gerekli değildir, basit javascript kullanın:

document.domain

belki de buna gerek yoktur ama soruyu cevaplamadığınızı söyleyerek
Emiliano

Evet, soruyu tam anlamıyla cevaplayan bir robot değilim. Son hedefin ne olduğunu ve hedefe ulaşmak için jQuery'e ihtiyacınız olmadığını bilerek soruya pragmatik olarak cevap verdim.
Adam

Anlıyorum ama bu tür bir cevap tam değil, isterseniz daha iyi bir cevap verebilirsiniz
Emiliano

3

document.baseURIsize alan + portunu verir. Bir resim etiketi mutlak yol yerine bir göreli kullanıyorsa kullanılır. Muhtemelen zaten çözülmüş, ancak diğer erkekler için yararlı olabilir.


2
var part = location.hostname.split('.');
var subdomains = part.shift();
var upperleveldomains = part.join('.');

ikinci düzey alan adını kullanabilirsiniz.

var sleveldomain = parts.slice(-2).join('.');

1

şuna göz at

alert(window.location.hostname);

bu, host adını www.domain.com olarak döndürür


0

gördüğüm kadarıyla kimse jquery çözüm ancak yerel javascript kodu gönderdi.

URL'yi bir dize olarak iletmeniz gerekir ve regexp kullanmadan ana makineyi alır.

function getHostFromUrl(urlString) {
    return $a = $('<a>', {
        'href': urlString
    }).prop('host');
}

-2
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-z]+.)/,"");
}

-4
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}

3
ancak url zaten ön
eke sahip değilse

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.- Jamie Zawinski
msangel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.