jquery、ドメイン、URLの取得


回答:


335

単純なJavaScriptで十分なので、jQueryは必要ありません。

alert(document.domain);

実際に見る:

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

その他のドメイン関連の値については、window.locationオンラインのプロパティを確認してください。location.hostその内容がとは異なる可能性があるため、これがより良いオプションであることがわかるでしょうdocument.domain。たとえば、URL http://192.168.1.80:8080にはのIPアドレスのみが含まれdocument.domain、IPアドレスとポート番号の両方が含まれlocation.hostます。


7
@ rob.alarconこれはW3Cの推奨事項であり、新旧のブラウザ間で非常に幅広いサポートがあります。私が知っている唯一の問題は、新しい値が元のドメインのサブドメインである限り、一部のブラウザー(Firefoxなど)がこのプロパティ(仕様に従って読み取り専用)への書き込みを許可することです。
サンプソン

4
私は実際に使用することをお勧めしますwindow.location.host(bibbyが投稿したとおり)。document.domainサブドメインではなくルートドメインに設定されていたバグを修正しました。
デレクモリソン

IE11ではをdocument.location.origin返しますundefined
TimothyBuktu 2016年

113

編集:

IE10をサポートする必要がない場合は、以下を使用できます。 document.location.origin

元の回答、レガシーサポートが必要な場合

ロケーションオブジェクトを調べることで、これ以上の情報を取得できます。

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

そう:

location.host 

ドメインになります。この場合は、stackoverflow.comです。URLの完全な最初の部分については、以下を使用できます。

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

この場合、http://stackoverflow.comになります。

jQueryは必要ありません。



@完全なURLについては、https: //stackoverflow.comにつながるURLを使用document.location.originしてください。この方法には適切なプロトコルが含まれています
Nathileo

33

ある前に答えに似ています

location.host

グローバルの場所には、現在のURLに関するより面白い事実もあります。(プロトコル、ホスト、ポート、パス名、検索、ハッシュ)


20

私のように文字列から必要な場合は、この関数を使用してください-それは本当に機能します。

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

ただし、URLにサブドメイン(wwwなど)がある場合は、ホスト名とともに返されます。逆に、サブドメインがない場合、ホスト名にもサブドメインはありません。


@Vova Popov(または誰か)が最後の文を明確にしてくれませんか?「www。ar no www。」?!?
ランドールクック

2
彼はa.hostnameがwwwを返すと言っています。それはあなたのドメインの一部です。換言すれば、これは偽のようになります。getHost('http://www.google.com') == 'google.com'これは本当だろう一方、:getHost('http://google.com') == 'google.com'
Milimetric

9

以下のコードを使用して、現在の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);

ドキュメントの代わりにjsファイルがホストされているホストを取得する方法もありますか?atm。私はjsファイルサーバー側を操作して、この「接続」文字列を取得していますが、これは機能しますが、静的jsファイルを好むため非効率的です。
yellowsir 2015

6

jQueryは必要ありません。単純なJavaScriptを使用します。

document.domain

多分それは必要ないかもしれませんが、あなたは質問に答えていないと言っています
Emiliano

ええ、私は文字通り質問に答えるロボットではありません。私は、最終目標が何であるか、そして目標を達成するためにjQueryを必要としないことを実際的に知っている質問に答えました。
アダム

私は理解していますが、そのような答えは完全ではありません。もしあなたが望むなら、より良い答えを出すことができます
エミリアーノ

3

document.baseURIドメイン+ポートを提供します。画像タグが絶対パスではなく相対パスを使用する場合に使用されます。おそらくすでに解決されていますが、他の人にとっては役立つかもしれません。


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

第2レベルドメイン、使用する可能性があります

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

1

これをチェックして

alert(window.location.hostname);

これはホスト名をwww.domain.comとして返します


0

私が見る限り、jqueryソリューションは投稿されていませんが、ネイティブのJavaScriptコードです。

URLを文字列として渡す必要があり、正規表現を使用せずにホストを取得します。

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
ただし、URLにプレフィックスがない場合は、ドメイン名が削除されます。例:「stackoveflow.com」は「com」になります
Filipiz

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.-ジェイミー
ザウィンスキー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.