Document.domain

Document インターフェイスの domain プロパティは、同一オリジンポリシーで使用される現在の文書のオリジンのうち、ドメインの部分を取得または設定します。

このプロパティが正常に設定されると、オリジンのポート番号の部分も null に設定されます。

構文

var domainString = document.domain;
document.domain = string;

現在の文書のオリジンのうち、ドメインの部分です。

例外

SecurityError
以下の状況のうちの一つで、 domain を設定することが試みられた。
  • 文書がサンドボックス化された <iframe> の中にある場合
  • 文書に閲覧コンテキストがない場合
  • 文書の影響ドメインnull の場合
  • 指定された値が文書の影響ドメインと一致しない (または登録可能なドメインの接頭辞ではない) 場合
  • Feature-Policydocument-domain が有効の場合

ドメイン名の取得

http://developer.mozilla.org/en-US/docs/Web の URI において、この例は currentDomain に "developer.mozilla.org" の文字列を設定します。

var currentDomain = document.domain;

ウィンドウを閉じる

文書が www.example.xxx/good.html のような "www.example.xxx" のドメインを持つ場合、この例はウィンドウを閉じようとします。

var badDomain = "www.example.xxx";

if (document.domain == badDomain) {
  // 単なる例: window.close() は効果がないことがある
  window.close();
}

仕様書

仕様書 状態 備考
HTML Living Standard
Document.domain の定義
現行の標準  

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
domainChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 あり
補足
完全対応 あり
補足
補足 From Firefox 62, if the domain cannot be identified, domain returns an empty string instead of null. See bug 819475.
IE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 あり
補足
完全対応 あり
補足
補足 From Firefox 62, if the domain cannot be identified, domain returns an empty string instead of null. See bug 819475.
Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android ?

凡例

完全対応  
完全対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。

Firefox のメモ

In Firefox, this property used to return null if the domain of the document could not be identified, although this has now changed as of Firefox 62 — see the discussion in バグ 819475.

Mozilla will let you set this property to a superdomain of the current value, constrained by its base domain. For example, on developer.mozilla.org it is possible to set it to "mozilla.org" but not "mozilla.com" or "org".

Mozilla distinguishes a document.domain property that has never been set from one explicitly set to the same domain as the document's URL, even though the property returns the same value in both cases. One document is allowed to access another if they have both set document.domain to the same value, indicating their intent to cooperate, or neither has set document.domain and the domains in the URLs are the same (implementation). Were it not for this special policy, every site would be subject to XSS from its subdomains (for example, https://bugzilla.mozilla.org could be attacked by bug attachments on https://bug*.bugzilla.mozilla.org).

関連情報