blob: 8a884828f3dacbdc5150014cdd9f3c15884169e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
---
title: window.self
slug: Web/API/Window/self
tags:
- API
- Gecko
- HTML DOM
- Property
- Read-only
- Reference
- Window
translation_of: Web/API/Window/self
---
<p>{{ APIRef() }}</p>
<p><code><strong>Window.self</strong></code> 読み取り専用プロパティは、{{domxref("WindowProxy")}} のように、ウィンドウ自身を返します。<code>window</code> オブジェクトでドット表記法 (つまり、<code>window.self</code>) を使用して使うことも、単独 (<code>self</code>) で使うこともできます。単独表記法を使用する利点は、{{domxref("Worker", "Web Workers")}} のような非 window コンテクストにも同様の表記法が存在することです。<code>self</code> を使用することで、window コンテキスト (<code>self</code> は <code>window.self</code> として解決されます) だけでなく、worker コンテキスト (<code>self</code> は {{domxref("WorkerGlobalScope.self")}} として解決されます) でも機能するようにグローバルスコープを参照できます。</p>
<h2 id="構文">構文</h2>
<pre class="eval">var w = window.self; // w === window
</pre>
<h2 id="例">例</h2>
<p>次のような <code>window.self</code> の使い方は、<code>window</code> に置き換えることもできます。</p>
<pre class="brush:js">if (window.parent.frames[0] != window.self) {
// このウィンドウは、一覧における一番最初のフレームではありません。
}</pre>
<p>さらに、ブラウジングコンテクストのアクティブなドキュメントで実行するとき、<code>window</code> は現在のグローバルオブジェクトを参照するため、以下のものはすべて等価です:</p>
<pre class="brush:js">var w1 = window;
var w2 = self;
var w3 = window.window;
var w4 = window.self;
// w1, w2, w3, w4 は厳密に等価、しかし w2 だけは worker で動作します。
</pre>
<h2 id="仕様">仕様</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">仕様</th>
<th scope="col">状態</th>
<th scope="col">コメント</th>
</tr>
<tr>
<td>{{SpecName('HTML WHATWG', '#dom-self', 'Window.self')}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td>最新のスナップショット {{SpecName("HTML5.1")}} からの変更なし</td>
</tr>
<tr>
<td>{{SpecName('HTML5.1', 'browsers.html#dom-self', 'Window.self')}}</td>
<td>{{Spec2('HTML5.1')}}</td>
<td>{{SpecName("HTML5 W3C")}} からの変更なし</td>
</tr>
<tr>
<td>{{SpecName('HTML5 W3C', 'browsers.html#dom-self', 'Window.self')}}</td>
<td>{{Spec2('HTML5 W3C')}}</td>
<td><code>Window.self</code> の定義を含む最初のスナップショット</td>
</tr>
</tbody>
</table>
<h2 id="ブラウザー互換性">ブラウザー互換性</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>機能</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>基本サポート</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>機能</th>
<th>Android</th>
<th>Chrome for Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>基本サポート</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
<td>{{ CompatVersionUnknown() }}</td>
</tr>
</tbody>
</table>
</div>
<h2 class="noinclude" id="関連">関連</h2>
<ul>
<li>この <code>Worker</code> は {{domxref("WorkerGlobalScope.self")}} と等しい。</li>
</ul>
|