<dialog> - ダイアログ

目次

概要

形式
<dialog></dialog>
サポート
https://caniuse.com/dialog
カテゴリ
フローコンテンツ
セクショニングルート
親要素
フローコンテンツ を子要素に持てるもの
子要素
フローコンテンツ
タグの省略
開始タグ:必須 / 終了タグ:必須
属性
グローバル属性
open

説明

<dialog> はダイアログを表示します。JavaScript でダイアログの表示・クローズを制御することが可能です。show() は通常モードでダイアログを表示します。showModal() はモーダル状態(ダイアログ以外の操作が禁止される)でダイアログを開きます。close() はダイアログを閉じます。close() の引数は、ダイアログの onclose イベントハンドラの this.returnValue で参照することができます。

HTML Living Standard、HTML 5.2 で追加され、Chrome 37、Opera 24 以降でサポートされています。

属性

グローバル属性
詳細は グローバル属性 を参照してください。
open
LS/H5.2
最初にダイアログを表示した状態で開きます。

使用例

HTML
<input type="button" value="Show" onclick="document.getElementById('dg1').show()">
<input type="button" value="ShowModal" onclick="document.getElementById('dg1').showModal()">
<dialog id="dg1">
  <p>Hello!</p>
  <input type="button" value="Close" onclick="document.getElementById('dg1').close()">
</dialog>
表示

Hello!

ダイアログに入力した値を受け取るには、下記の様に close() の引数と this.returnValue を用います。

HTML
<script>
window.addEventListener('load', function() {
  var dialog2 = document.getElementById('dialog2');
  var open2 = document.getElementById('open2');
  var text2 = document.getElementById('text2');
  var close2 = document.getElementById('close2');
  open2.addEventListener('click', () => {
    dialog2.showModal();
  });
  close2.addEventListener('click', () => {
    dialog2.close(text2.value);
  });
  dialog2.addEventListener('close', () => {
    alert(this.returnValue);
  });
});
</script>
<input type="button" id="open2" value="Open">
<dialog id="dialog2">
  <input type="text" id="text2" value="Hello">
  <input type="button" id="close2" value="Close">
</dialog>
表示