1. ホーム
  2. javascript

[解決済み] location.host vs location.hostnameとクロスブラウザの互換性?

2022-03-21 02:59:55

質問

ユーザーエージェントが正しいドメイン経由でアクセスしているかどうかをチェックするのに、最も効果的なのはどれでしょうか。

ある種のウェブプロキシを使ってドメインにアクセスしている場合、小さなjsベースの「トップバー」スタイルの警告を表示したい(jsが壊れる傾向があるため)。

以下のような使い方を考えていました。

var r = /.*domain\.com$/;
if (r.test(location.hostname)) {
    // showMessage ...
}

これで、今まで使っていたサブドメインはすべて片付きますね。

ホストとホストネームのどちらを使うべきでしょうか?

Firefox 5とChrome 12の場合。

console.log(location.host);
console.log(location.hostname);

...は、どちらも同じものを表示します。

それは、アドレスバーに実際にポートが表示されていないからでしょうか?

W3Schools は、ホストがポートを含んでいることを意味します。

それとも、IE6+やその他すべての環境で、確実に存在するのでしょうか?

解決方法は?

ちょっとしたメモとして インタラクティブリンクの解剖学

--

要するに(場所を想定して http://example.org:8888/foo/bar#bang ):

  • hostname は、あなたに example.org
  • host が与える example.org:8888