script  変更 : スクリプト

カテゴリ

<!-- オレゲームデータの例 -->
<script type="text/x-game-map">
........U.........e
o............A....e
.....A.....AAA....e
.A..AAA...AAAAA...e
</script>

<!-- モジュールスクリプト -->
<script type="module" src="app.mjs"></script>

<!-- モジュールをサポートしない古いブラウザ向けの対応スクリプト -->
<script nomodule src="classic-app-bundle.js"></script>

<!-- スクリプトは外部から読み込んで、中にそのドキュメントを書く例 -->
<script src="cool-effects.js">
 // create new instances using:
 //    var e = new Effect();
 // start the effect using .play, stop using .stop:
 //    e.play();
 //    e.stop();
</script>

説明

スクリプト。だいたいはJavaScript。 src属性が指定されている場合は、中身はsrc属性で指定されたスクリプトのAPI情報やライセンスの文書になる。 HTML5で色んな要素の間に挟まる事ができるようになっている。

属性 属性値の見方

async  new(真偽値)
スクリプトをHTML文書解析と非同期に解析/実行する。src属性の指定があってモジュールでないスクリプトの場合のみ有効。async/deferの関係は公式の図が分かりやすいので、そのまま流用する。
charset[エンコード]
src属性の指定先リソースの文字コード。HTML5.3/Living Standardでは中途半端に削除されていて今後なくなるかも?
crossorigin  new(真偽値)|anonymous|use-credentials
オリジンをまたいでリンク先リソースを取得する場合に、通常のJavaScriptの場合はwindow.onerrorで詳細な情報を取得できるようにする。

type=moduleの場合は、以下の通り情報を付与する。CORS

  • anonymous: HTTP Originヘッダー有り/CookieやBASIC認証情報等の信用情報無し
  • use-credentials: HTTP Originヘッダー有り/CookieやBASIC認証情報等の信用情報有り
  • 指定なし: HTTP Originヘッダー無し

仕様書は通常のJavaScriptとモジュールどちらもanonymous|use-credentialsを指定できるような書き方になっているが、window.onerrorに認証情報はどうも関係無い気がする…

defer  変更(真偽値)
スクリプトをHTML文書解析と非同期に解析し、文書解析後に実行する。src属性の指定があってモジュールでないスクリプトの場合のみ有効。

「文書解析」って小難しいけど、ブラウザがそのページを「あーそーゆーことね 完全に理解した」となる状態の事。HTML4では「このスクリプトはHTMLに変更を加えないから並列で解析していーよ」っていう意味だった。

integrity  未来[文字列]ie
リソースが例えば悪い人がサーバーに入ってゴニョゴニョしたとかで改ざんされたかをブラウザがこの値を使って検証する。詳細はSubresource Integrity (SRI)を参照。
nomodule  未来(真偽値)ie
モジュールをサポートしないブラウザで後方互換性のために実行するスクリプトに指定する。指定した場合、モジュールをサポートするブラウザではスルーされ、サポートしないブラウザでは実行される。
nonce  new[BASE64]ie
ワンタイムキーのようなもの。(リンク先ではなく)その文書自身のHTTPヘッダーの当該nonceと合致した場合にリソースを妥当とみなす。大文字小文字を区別する。 詳細はContent Security Policy (CSP)参照。
src[URL]
スクリプトリソースのURL。データブロックの場合は利用できない(中身として書く必要がある)。
type  変更[MIMEタイプ]|module
HTML4では必須だったが、HTML5では任意になり、JavaScriptの場合は省略すべき。

moduleはJavaScriptのモジュールを示すキーワード。

JavaScriptではないMIMEタイプを指定すると、ブラウザに処理されないデータブロックとして扱われる。

event
予約のまま廃止に
for
予約のまま廃止に
language
代わりにtype属性を使用