HTMLでメディアデータの読み込み時にスクリプトを実行する方法(onloadeddataイベント)
メディアデータが読み込まれたタイミングでスクリプトを実行したい場合は、onloadeddataイベントを使用します。このイベントは、動画や音声などのメディアの最初のフレーム(データ)が読み込まれた時点で発生し、任意のJavaScript関数を呼び出すことができます。
onloadeddataイベントとは
onloadeddataは、HTML5のメディア要素(<video>や<audio>)で利用できるイベントハンドラの一つです。メディアのデータがブラウザにロードされた瞬間に指定した処理を実行できるため、読み込み完了の通知表示や、プレイヤーの初期化処理などに活用できます。
実装例
以下のコードでは、動画のデータが読み込まれるとアラートボックスを表示します。video要素にonloadeddata属性を設定し、読み込み完了時にdisplay()関数を呼び出しています。
<!DOCTYPE html>
<html>
<body>
<video controls onloadeddata = "display()">
<source src = "/html5/foo.ogg" type = "video/ogg" />
<source src = "/html5/foo.mp4" type = "video/mp4" />
お使いのブラウザはvideo要素をサポートしていません。
</video>
<script>
function display() {
alert("読み込み完了!");
}
</script>
</body>
</html>コードのポイント
<source>要素で複数の形式(ogg・mp4)を指定することで、ブラウザごとの対応フォーマットの違いに対応できます。また、どの形式も再生できない環境向けに、video要素内に代替テキストを記述しておくと親切です。
-
HTMLで要素が無効なときにスクリプトを実行する方法|oninvalid属性の使い方
HTMLでフォームの要素が無効(バリデーションエラー)になったときにスクリプトを実行したい場合は、oninvalid属性を使用します。oninvalid属性とは?oninvalidは、入力フィールドの値が検証ルールを満たさなかった場合に発火するイベント属性です。例えば、required属性が指定された入力欄が空のままフォームを送信しようとしたときなどに、アラート表示やカスタムメッセージの処理をJavaScriptで実行できます。サンプルコード以下のコードでは、学生IDの入力欄が空のまま送信ボタンが押されたときに、oninvalid属性によって警告メッセージを表示します。<!DOCTYPE
-
HTMLでブラウザがメディアデータを取得中のときにスクリプトを実行するには?
HTMLでは、onprogress属性を使用することで、ブラウザがメディアデータ(動画や音声)をダウンロードしている最中にスクリプトを実行できます。onprogress属性とはonprogress属性は、ブラウザがメディアデータを取得(バッファリング)している間に発生するイベントです。読み込みの進捗状況をユーザーへ通知したり、ローディング表示を制御したりする際に活用できます。実装例以下のコードを実行して、onprogress属性の動作を確認してみましょう。<!DOCTYPE html> <html> <body> &n