[2] [DFN[[RUBYB[[[スクリプトが有効]]]@en[scripting is enabled]]]]、[DFN[[RUBYB[[[スクリプトが無効]]]@en[scripting is disabled]]]]とは、 [[スクリプト]]の実行の可否を指します。また[[HTML構文解析器]]には[RUBYB[[[スクリプトフラグ]]]@en[scripting flag]]があります。 * 仕様書 [REFS[ - [1] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-12-19 00:10:55 +09:00]] 版) - [8] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2013-12-19 00:10:55 +09:00]] 版) ]REFS] * 閲覧文脈のスクリプト有効性 [3] [[閲覧文脈]]については、次の条件がすべて満たされた時[[スクリプトが有効]]となり、 そうでないとき[[スクリプトが無効]]となります [SRC[>>1]]。 [FIG[ - [4] [[利用者エージェント]]が[[スクリプト]]に対応している - [5] [[利用者]]がその時点で当該[[閲覧文脈]]について[[スクリプト]]を無効にしていない - [6] [[閲覧文脈]]の[[活性文書]]の[[活性砂箱化フラグ集合]]において[[砂箱化スクリプト閲覧文脈フラグ]]が設定されていない ]FIG] ;; [10] [[砂箱化スクリプト閲覧文脈フラグ]]は [CODE(HTMLe)@en[[[iframe]]]] [[要素]]の [CODE(HTMLa)@en[[[sandbox]]]] [[属性]]や [[CSP]] の [CODE(HTTP)@en[[[sandbox]]]] [[指令]]によって設定できます。 * 節点のスクリプト有効性 [7] [[節点]]については、[[節点文書]]が関連付けられた[[閲覧文脈]]を持ち、 その[[閲覧文脈]]について[[スクリプトが有効]]であるなら[[スクリプトが有効]]であり、 そのような[[閲覧文脈]]がないか、[[閲覧文脈]]で[[スクリプトが無効]]なら、[[スクリプトが無効]]です [SRC[>>1]]。 * 構文解析器のスクリプトフラグ [9] [[HTML構文解析器]]が作られた時点において[[構文解析器]]と関連付けられた[[文書節点]]の[[スクリプトが有効]]なら、 [[構文解析器]]の[[スクリプトフラグ]]が「有効」に設定されます。そうでなければ「無効」に設定されます。 [SRC[>>8]] ;; [11] [[閲覧文脈]]や[[節点]]のスクリプトの有効性は動的に変更されることがありますが、 [[構文解析器]]の[[スクリプトフラグ]]は一度設定されたら変更されません。 ですから、[CODE(HTMLe)@en[[[noscript]]]] [[要素]]の中身が構文解析された[[文書]]で[[スクリプト]]が実行されることもあり得ます。 ;; [12] このフラグは [[HTML構文解析器]]には存在しますが、 [[XML構文解析器]]には存在しません。 [[スクリプト]]の実行自体は[[閲覧文脈]]の[[スクリプトが有効]]かどうかにより制御されます。