web-dev-qa-db-ja.com

現在のドメイン名をJavascriptで取得する(パスなどではありません)

同じサイトに2つのドメイン名を購入する予定です。どのドメインが使用されているかに応じて、私はページ上でわずかに異なるデータを提供することを計画しています。自分のコンテンツを何に変更すべきかがわかるように、ページのロード元の実際のドメイン名を検出する方法はありますか?

私はこのようなものを見回しました、しかし、それのほとんどは私がそれが望む方法ではうまくいきません。

例えば使用時

document.write(document.location)

on JSFiddle を返します

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

つまり、実際のパスなどです。

176
Freesnöw

どうですか?

window.location.hostname

locationオブジェクトは、実際にはURLのさまざまな部分を参照する 属性数 を持ちます。

361
Gareth

ホスト名(例えばwww.beta.example.com)ではなくドメイン名(例えばexample.com)に興味がない場合、これは有効なホスト名に対して機能します。

function getDomainName(hostName)
{
    return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}
24
cprcrack

スクリプトで実行してみてください。パス: http:// localhost:4200/landing?query = 1#2

console.log(window.location.hash)

場所には次の値があります。

window.location.hash: "#2"
​
window.location.Host: "localhost:4200"
​
window.location.hostname: "localhost"
​
window.location.href: "http://localhost:4200/landing?query=1#2"
​
window.location.Origin: "http://localhost:4200"
​
window.location.pathname: "/landing"
​
window.location.port: "4200"
​
window.location.protocol: "http:"

window.location.search: "?query=1"
16
Sunil shakya
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;
}

以前のバージョンはフルドメイン(サブドメインを含む)を取得していました。今それは好みに応じて正しいドメインを決定します。そのため、2番目の引数がtrueと指定されている場合はサブドメインを含み、それ以外の場合は「メインドメイン」のみを返します

16
adelineu

Javascriptのlocationオブジェクトから簡単に入手できます。

たとえば、このページのURLは次のとおりです。

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

それから、locationオブジェクトの以下のプロパティを使って正確なドメインを得ることができます。

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

あなたは完全なドメインを作ることができます:

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

この例ではhttp://www.stackoverflow.comを返します。

これに加えて、完全なURLとlocationオブジェクトの他のプロパティを含むパスも取得できます。

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

ドメイン名だけに興味があり、サブドメインを無視したい場合は、Hosthostnameから解析する必要があります。

次のコードはこれを行います。

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

この質問はドメイン名を尋ねるので、ホスト名ではなく、正しい答えは

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

これは www.example.com のようなホスト名に対しても機能します。

6
Ethan

つかいます

document.write(document.location.hostname)​

window.locationにはたくさんのプロパティがあります。それらのリストについては ここ を参照してください。

6
Dancrumb

あなたがフルドメインのOriginをご希望の場合は、これを使用することができます:

document.location.Origin

ドメインだけを取得したい場合は、これだけを使用できます。

document.location.hostname

しかし、他の選択肢もあります。プロパティを見てください。

document.location
5
Ricardo França

JavaScriptでドメイン名を取得したい場合は、以下のコードを使用してください。

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

WebページのURLパスにアクセスしてWeb URLのパスにアクセスできるようにする必要がある場合は、次の例を使用してください。

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

私の場合は、window.location.Originが最適です。

2

この機能はどうですか?

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

サブドメインかメインドメインかにかかわらず、これはドメイン名のみに一致します。

1
unixdebian11

私はそれがこれと同じくらい簡単であるべきだと思います:

url.split("/")[2]

0

私はJavaScriptの初心者ですが、使用することはできません。document.domain

例:

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

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

出力:

domain.com

または

www.domain.com

あなたのウェブサイトで何を使うかによります。

0
UnluckyLuke