IT-Swarm.Net

Javascript ile Geçerli Alan Adını Alın (Yol vb.)

Aynı site için iki alan adı almayı planlıyorum. Hangi etki alanının kullanıldığına bağlı olarak, sayfada biraz farklı veriler sağlamayı planlıyorum. İçeriğimin neyi değiştireceğini bilmem için sayfanın yüklendiği asıl alan adını tespit etmenin bir yolu var mı?

Etrafımda böyle şeyler aradım ama çoğu istediğim gibi çalışmıyor.

Mesela kullanırken

document.write(document.location)

on JSFiddle döndürür

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

yani asıl yol ya da her neyse.

152
FreeSnow

Peki ya:

window.location.hostname

location nesnesinin aslında bir özniteliği vardır URL'nin farklı bölümlerine atıfta bulunur

332
Gareth

Ana bilgisayar adıyla ilgilenmiyorsanız (örneğin www.beta.example.com), ancak etki alanı adıyla (örneğin example.com) ilgileniyorsanız, geçerli Ana Bilgisayar adları için çalışır:

function getDomainName(hostName)
{
    return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}
23
cprcrack
function getDomain(url, subdomain) {
    subdomain = subdomain || false;

    url = url.replace(/(https?:\/\/)?(www.)?/i, '');

    if (!subdomain) {
        url = url.split('.');

        url = url.slice(url.length - 2).join('.');
    }

    if (url.indexOf('/') !== -1) {
        return url.split('/')[0];
    }

    return url;
}

Örnekler

Önceki sürüm tam etki alanı alıyordu (alt etki alanı dahil). Artık tercihe bağlı olarak doğru etki alanını belirliyor. Böylece, ikinci bir argüman doğru olarak verildiğinde alt etki alanını içerecek, aksi takdirde yalnızca 'ana etki alanı' döndürecektir

15
adelineu

Javascript'te konum nesnesinden kolayca alabilirsiniz:

Örneğin, bu sayfanın URL’si: 

http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc

Ardından, tam etki alanını konum nesnesinin aşağıdaki özellikleriyle alabiliriz:

location.Host = "www.stackoverflow.com"
location.protocol= "http:"

tam etki alanı ile yapabilirsiniz:

location.protocol + "//" + location.Host

Bu örnekte hangisi http://www.stackoverflow.com değerini döndürür? 

Buna ek olarak tam URL ve ayrıca konum nesnesinin diğer özelliklerine sahip yolu bulabiliriz: 

location.href= "http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"    
location.pathname= "questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"
9
Iman Sedighi

Yalnızca etki alanı adıyla ilgileniyorsanız ve alt etki alanını yoksaymak istiyorsanız, bunu Host ve hostname öğesinden ayırmanız gerekir. 

Aşağıdaki kod bunu yapar:

var firstDot = window.location.hostname.indexOf('.');
var tld = ".net";
var isSubdomain = firstDot < window.location.hostname.indexOf(tld);
var domain;

if (isSubdomain) {
    domain = window.location.hostname.substring(firstDot == -1 ? 0 : firstDot + 1);
}
else {
  domain = window.location.hostname;
}

http://jsfiddle.net/5U366/4/

7
dmck

Kullanım

document.write(document.location.hostname)​

window.location bir sürü özelliğe sahiptir. Bunların bir listesi için here 'a bakınız.

6
Dancrumb

Tam bir etki alanı kökenli istiyorsanız, bunu kullanabilirsiniz:

document.location.Origin

Ve sadece etki alanını elde etmek istiyorsanız, şunu yapabilirsiniz:

document.location.hostname

Ancak, başka seçenekleriniz de var:

document.location
5
Ricardo França

Bu soru etki alanı adını istediğinden, not Ana bilgisayar adı, doğru cevap

window.location.hostname.split('.').slice(-2).join('.')

Bu, www.example.com gibi gibi Ana Bilgisayar adları için de geçerlidir.

4
Ethan

JavaScript’te alan adı almak istiyorsanız, aşağıdaki kodu kullanmanız yeterlidir:

var domain_name = document.location.hostname;
alert(domain_name);

Web sayfası URL yoluna ihtiyacınız varsa, web URL yoluna erişebilmeniz için bu örneği kullanın:

var url = document.URL;
alert(url);
3
ujjal

benim durumum için en iyi eşleşme window.location.Origin

2

Komut dosyasında çalıştırmayı deneyin: 

console.log(window.location.hash)

Konum aşağıdaki değerlere sahiptir: 

window.location.hash: ""
​
window.location.Host: "localhost:4200"
​
window.location.hostname: "localhost"
​
window.location.href: "http://localhost:4200/landing"
​
window.location.Origin: "http://localhost:4200"
​
window.location.pathname: "/landing"
​
window.location.port: "4200"
​
window.location.protocol: "http:"
2
Sunil shakya

Peki ya bu işlev? 

window.location.hostname.match(/\w*\.\w*$/gi)[0]

Bu, bir alt etki alanı veya ana etki alanı ne olursa olsun, yalnızca etki alanı adıyla eşleşir

1
unixdebian11

Bunun kadar basit olması gerektiğini düşündüm: 

url.split("/")[2]

0

JavaScript'te yeniyim, ancak kullanamazsınız: document.domain ?

Örnek:

<p id="ourdomain"></p>

<script>
var domainstring = document.domain;
document.getElementById("ourdomain").innerHTML = (domainstring);
</script>

Çıktı:

domain.com

veya

www.domain.com

Web sitenizde ne kullandığınıza bağlı olarak.

0
UnluckyLuke