-
Notifications
You must be signed in to change notification settings - Fork 4
/
510.txt
52 lines (41 loc) · 2.6 KB
/
510.txt
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
[1] [[読取専用属性]]
[CODE[[VAR(DOMi)[[[Attr]]]].[CODE(DOMa)[specified]]]] ([[DOM1]])
の値は、その[[属性]]が明示されたものであるかどうか
([CODE(DOM)[boolean]]) です。
[2]
- [CODE(DOM)[true]] になる場合:
-- その[[要素]]の[[開始タグ]]にその属性の[[属性指定]]がある場合
-- DOM 的操作などで属性値を変更した場合
-- その属性節が要素に付随しない
([CODE(DOMa)[[[ownerElement]]]] == [CODE(DOM)[null]] の) 場合
- [CODE(DOM)[false]] になる場合:
-- その属性の値が明示されていない ([[DTD]] の既定値が使われている) 場合
- そもそもその属性節が存在しない場合:
-- その属性は [CODE(XML)[[[IMPLIED]]]] であって開始タグに明示されていない場合
なお、 [CODE(DOM)[true]] であった属性節が削除されて DTD
の既定値で属性値が「復活」した場合には、 [CODE(DOM)[false]]
に「戻り」ます。
- [DOM2] ''Document Object Model Core'' <http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-862529273>
[3]
[CODE(DOMa)@en[[[ownerElement]]]] が
[CODE(IDL)@en[[[null]]]] なら
[CODE(DOMa)@en[[[specified]]]] は
[CODE(IDL)@en[[[true]]]] になると
[[DOM水準1]] [[SE]] と [[DOM水準2]]には明記されています。
[5] [[Firefox]] でも [[Chrome]] でも、 [[DTD]] の[[既定値]]によって現れた[[属性]]であっても
[CODE(DOMa)@en[[[specified]]]] は[[真]]になります。 [TIME[2012-12-27T09:46:44.000Z]]
* テスト・ケース
[REFS[
- [4] [CITE[specified]] ([TIME[2012-12-27 09:23:18 +09:00]] 版) <http://suika.fam.cx/~wakaba/test/web/dom/attr/specified-xml-default-1.xhtml>
]REFS]
* 歴史
[7] かつては [[W3C DOM]] が [CODE[specified]] を本項の意味に定めていたため、
それ以外の[[仕様書]]がフランクに「specified」と言っているとき、
その意味に曖昧さが生じていました。多くの場合は[[英語]]の「specified」、
すなわち[[属性]]が存在するかどうかを表していました。
[8] [CITE[Web DOM Core]] (現在の [CITE[DOM Standard]]) は[[属性]]の specified
の概念を取り込まず、 [[DTD]] の[[既定属性]]か否かを [[DOM]]
で取得できないこととしました。これは実際には [[Webブラウザー]]で以前から採られていた手法でした。
[6] [CITE[Amusing how jQuery makes cleaning up the DOM harder. Welcome back Attr.s... · ab7d0c1 · whatwg/dom]]
( ([TIME[2014-04-11 23:49:32 +09:00]] 版))
<https://github.com/whatwg/dom/commit/ab7d0c17491d94a93a463f04f6977ce689e9da0b>