JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://jsfiddle.net/gj2yfrmp/"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dialog-polyfill/0.4.9/dialog-polyfill.min.js"></script>
<dialog id="dialog">
你喜歡吃:<br>
<button id="opt1">滷肉飯</button>
<button id="opt2">肉燥飯</button>
<button id="opt3">雞肉飯</button>
</dialog>
<button id="open">
問個問題
</button>
<span id="result"></span>
JavaScript
const $dialog = document.getElementById('dialog');
const $result = document.getElementById('result');
const $open = document.getElementById('open');
const $opt1 = document.getElementById('opt1');
const $opt2 = document.getElementById('opt2');
const $opt3 = document.getElementById('opt3');
// dialog-polyfill
dialogPolyfill.registerDialog($dialog);
$open.addEventListener('click', e => $dialog.showModal());
$opt1.addEventListener('click', e => $dialog.close('北部人'));
$opt2.addEventListener('click', e => $dialog.close('南部人'));
$opt3.addEventListener('click', e => $dialog.close('嘉義人'));
$dialog.addEventListener('close', e => {
$result.textContent = $dialog.returnValue ? `你是${$dialog.returnValue}` : '';
});
$dialog.addEventListener('click', e => {
// 使用者按下背景,關閉對話框。
if (e.target === $dialog) $dialog.close();
});