この要素には、グローバル属性が含まれています。
async
クラシック スクリプトの場合、async
属性が存在すると、クラシック スクリプトは解析と並行して取得され、利用可能になるとすぐに評価されます。
モジュール スクリプトの場合、async
属性があると、スクリプトとそのすべての依存関係が defer キューで実行されるため、解析と並行して取得され、利用可能になるとすぐに評価されます。
この属性により、ブラウザが解析を続ける前にスクリプトを読み込んで評価しなければならないような、パーサーブロックとなる JavaScript を排除することができます。 defer
でも同様の効果があります。
これはブール型の属性です。要素にブール型の属性があると真の値を表し、属性がないと偽の値を表します。
ブラウザのサポートに関する注意点は、「ブラウザの互換性」を参照してください。 asm.jsの非同期スクリプトも参照してください。
crossorigin
script
要素は、標準のCORSチェックを通過しないスクリプトのために、window.onerror
に最小限の情報を渡します。 静的メディアに別のドメインを使用しているサイトのエラーログを許可するには、この属性を使用します。 有効な引数についての詳しい説明は、「CORS設定属性」を参照してください。 defer
このBoolean属性は、スクリプトがドキュメントの解析後、DOMContentLoaded
の焼成前に実行されることをブラウザに示すために設定されます。
defer
DOMContentLoaded
イベントが発生しません。
defer
属性は、モジュール スクリプトには効果がありません。
defer
属性を持つスクリプトは、ドキュメントに表示された順に実行されます。
この属性により、ブラウザが解析を続ける前にスクリプトをロードして評価しなければならないような、パーサーブロックとなるJavaScriptを排除することができます。
async
でも同じような効果があります。 integrity
nomodule
このBoolean属性は、ES2015モジュールをサポートするブラウザでスクリプトを実行すべきでないことを示すために設定されます。 nonce
script-src Content-Security-Policyでスクリプトをホワイトリストに登録するための暗号化されたnonce(1回だけ使用される番号)。 サーバーは、ポリシーを送信するたびに、一意の nonce 値を生成する必要があります。 リソースのポリシーを迂回することは些細なことであるため、推測できない nonce を提供することが重要です。 referrerpolicy
スクリプトやスクリプトで取得したリソースを取得する際に、どのリファラーを送信するかを示します。
-
no-referrer
Referer
ヘッダーは送信されません。 -
no-referrer-when-downgrade
(デフォルト)。 -
origin
:送信されるリファラーは、参照ページのオリジン(そのスキーム、ホスト、ポート)に限定されます。 -
origin-when-cross-origin
: 他のオリジンに送信されるリファラーは、スキーム、ホスト、ポートに限定されます。 -
same-origin
:他のオリジンに送信されるリファラーは、スキーム、ホスト、ポートに限定されますが、同じオリジンでのナビゲーションにはパスが含まれます。 同一オリジンの場合はリファラーが送信されますが、クロスオリジンのリクエストにはリファラー情報が含まれません。 -
strict-origin
: -
strict-origin-when-cross-origin
: 同一オリジンのリクエストを行う際にはフル URL を送信しますが、プロトコルのセキュリティレベルが同じ場合にはオリジンのみを送信します(例:HTTPS→HTTP)。 -
unsafe-url
: 参照元にはオリジンとパスが含まれます(フラグメント、パスワード、ユーザー名は含まれません)。 この値は、TLSで保護されたリソースのオリジンとパスを安全でないオリジンにリークするため、安全ではありません。
注:空の文字列の値(""
referrerpolicy
referrerpolicy
<script>
no-referrer-when-downgrade
と同等のものとして扱われます。
src
この属性は外部スクリプトのURIを指定します。これはドキュメントに直接スクリプトを埋め込む代わりに使用できます。
- Omitted or a JavaScript MIME type: これは、スクリプトがJavaScriptであることを示します。 HTML5の仕様では、冗長なMIMEタイプを指定するのではなく、この属性を省略することが推奨されています。 以前のブラウザでは、
src
属性によって埋め込まれたり、取り込まれたりしたコードのスクリプト言語を示していました。 JavaScriptのMIMEタイプは仕様書に記載されています。 -
module
: コードをJavaScriptのモジュールとして扱います。 スクリプトの内容の処理は、charset
defer
module
の使用方法については、JavaScriptモジュールガイドをご覧ください。 クラシックスクリプトとは異なり、モジュールスクリプトでは、クロスオリジンフェッチのためにCORSプロトコルの使用が必要です。 埋め込まれたコンテンツはデータブロックとして扱われ、ブラウザでは処理されません。 開発者は、データブロックを表すために、JavaScriptのMIMEタイプではない有効なMIMEタイプを使用する必要があります。src
属性は無視されます。