Baseline Widely available *
HTML <dialog>
å
ç´ è¡¨ç¤ºä¸ä¸ªå¯¹è¯æ¡æå
¶ä»äº¤äºå¼ç»ä»¶ï¼ä¾å¦ä¸ä¸ªå¯å
³éè¦åãæ£æ¥å¨æè
çªå£ã
è¿ä¸ªå ç´ å å«äºå ¨å±å±æ§ã
è¦åï¼ tabindex
屿§ä¸è½è¢«ä½¿ç¨å¨ <dialog>
å
ç´ ä¸ã
open
æç¤ºè¿ä¸ªå¯¹è¯æ¡æ¯æ¿æ´»çåè½äºå¨çã彿²¡æè®¾ç½® open
屿§æ¶ï¼å¯¹è¯æ¡ä¸åºè¯¥æ¾ç¤ºç»ç¨æ·ãæ¨èä½¿ç¨ .show()
æ .showModal()
æ¹æ³æ¥æ¸²æå¯¹è¯æ¡ï¼è䏿¯ä½¿ç¨ open
屿§ã
<dialog>
å
ç´ çæ©æå®ç°å¨æäºå½¢å¼çè¾
婿æ¯ä¸ä»åå¨å¯ç¨æ§é®é¢ã为äºä¿è¯ Safari 15.4 çæ¬ä»¥ä¸çæ éç¢æ§ï¼æ¨è使ç¨ä¸´æ¶çè§£å³æ¹æ¡ï¼å¦ï¼a11y-dialogï¼ä»¥è·å¾æç»çå¯ç¨æ§æ¯æã
å¨å®ç°ä¸ä¸ªå¯¹è¯æ¡æ¶ï¼èèæåéçå°æ¹æ¥è®¾ç½®ç¨æ·ç¦ç¹æ¯å¾éè¦çãéè¿ä½¿ç¨ autofocus 屿§æç¡®æåºåå§ç¦ç¹çä½ç½®ï¼å°æå©äºç¡®ä¿åå§ç¦ç¹è¢«è®¾ç½®å°è¢«è®¤ä¸ºæ¯ä»»ä½ç¹å®å¯¹è¯æ¡çæä½³åå§ç¦ç¹ä½ç½®çå
ç´ ãç±äºå¹¶ä¸æ»æ¯ç¥éåå§ç¦ç¹å¯ä»¥è®¾ç½®å¨å¯¹è¯æ¡ä¸çä»ä¹å°æ¹ï¼ç¹å«æ¯å¯¹äºå¯¹è¯æ¡çå
容å¨è¢«è°ç¨æ¶å¨æåç°çæ
åµï¼å¦ææå¿
è¦ï¼ä½è
å¯ä»¥å³å®èç¦äº <dialog>
å
ç´ æ¬èº«ï¼æä¾æä½³çåå§ç¦ç¹ä½ç½®ã
ç¡®ä¿ç»äºç¨æ·å
³éå¯¹è¯æ¡çæºå¶ãææåçæ¹æ³æ¯ç»ç¨æ·æä¾ä¸ä¸ªæç¡®çæé®ï¼å¦ç¡®è®¤ãåæ¶æå
³éæé®ãæ¤å¤ï¼å¯¹äºé£äºä½¿ç¨é®ç设å¤ç人æ¥è¯´ï¼Escape é®é常ä¹ä¼ç¨æ¥å
³é模æå¯¹è¯æ¡ãé»è®¤æ
åµä¸ï¼ä¸ä¸ªç± showModal()
æ¹æ³è°ç¨ç <dialog>
å°å
许å
¶è¢« Escape å
³éã鿍¡æå¯¹è¯æ¡é»è®¤ä¸ä¼éè¿ Escape 鮿¥å
³éï¼è䏿 ¹æ®é模æå¯¹è¯æ¡æä»£è¡¨çå
容ï¼å®å¯è½ä¸å¸ææè¿ç§è¡ä¸ºã妿æå¼äºå¤ä¸ªæ¨¡æå¯¹è¯æ¡ï¼Escape åªåºè¯¥å
³éæåä¸ä¸ªå¯è§å¯¹è¯æ¡ã
æµè§å¨ä½¿ç¨ ARIA role="dialog" 屿§å¯¹ <dialog>
å
ç´ è¿è¡äºç±»ä¼¼äºèªå®ä¹å¯¹è¯æ¡çæ´é²ãç± showModal()
æ¹æ³è°ç¨ç <dialog>
å
ç´ å°æä¸ä¸ªéå«ç aria-modal="true"ãèç± show()
æ¹æ³è°ç¨ç <dialog>
å
ç´ ï¼æéè¿ä½¿ç¨ open
屿§ï¼ææ¹å <dialog>
çé»è®¤ display
èåç°çï¼å°è¢«æ´é²ä¸º [aria-modal="false"]
ã建议使ç¨éå½ç showModal()
æ show()
æ¹æ³æ¥æ¸²æå¯¹è¯æ¡ã
ç¡®ä¿ä½ çå¯¹è¯æ¡å®ç°ä¸ä¼ç ´å颿çé»è®¤è¡ä¸ºï¼å¹¶éµå¾ªæ£ç¡®çæ ç¾å»ºè®®ã
使ç¨è¯´æ<form>
å
ç´ å¯å
³é嫿屿§ method="dialog"
çå¯¹è¯æ¡ãå½æäº¤è¡¨åæ¶ï¼å¯¹è¯æ¡ç returnValue
屿§å°ä¼çäºè¡¨åä¸è¢«ä½¿ç¨çæäº¤æé®ç value
ã::backdrop
CSS 伪å
ç´ å¯ç¨äºç»ä½¿ç¨ HTMLDialogElement.showModal()
æ¾ç¤ºç <dialog>
å
ç´ èæ¯æ·»å æ ·å¼ï¼ä¾å¦å¨å¯¹è¯æ¡è¢«æå¼æ¿æ´»æ¶ï¼è°æèæ¯ä¸ä¸å¯è®¿é®çå
容ãä¸é¢ç示ä¾ä¼æ¸²æä¸ä¸ªé模æå¯¹è¯æ¡ãå¨å¯¹è¯æ¡æ¿æ´»çç¶æä¸ï¼ç¹å»âOKâæé®å°ä¼å
³éå¯¹è¯æ¡ãæä¾ä¸ç§æºå¶æ¥å
³é dialog
å
ç´ ä¸çå¯¹è¯æ¡æ¯å¾éè¦çãä¾å¦ï¼Esc é®å¨é»è®¤æ
åµä¸ä¸ä¼å
³é鿍¡æå¯¹è¯æ¡ï¼åæ¶ä¹ä¸è½åè®¾ç¨æ·å¯ä»¥ä½¿ç¨ä¸ä¸ªç©çé®çï¼ä¾å¦ï¼ä½¿ç¨ä¸å¸¦ç©çé®çç触æ¸å±è®¾å¤ï¼ã
<dialog open>
<p>Greetings, one and all!</p>
<form method="dialog">
<button>OK</button>
</form>
</dialog>
é«çº§ç¤ºä¾
å½åå»âUpdate detailsâæé®æ¶ï¼æ¤ç¤ºä¾æå¼ä¸ä¸ªå å«ä¸ä¸ªè¡¨åçå¼¹åºå¯¹è¯æ¡ã
HTML<!-- Simple modal dialog containing a form -->
<dialog id="favDialog">
<form method="dialog">
<p>
<label
>Favorite animal:
<select>
<option value="default">Chooseâ¦</option>
<option>Brine shrimp</option>
<option>Red panda</option>
<option>Spider monkey</option>
</select>
</label>
</p>
<div>
<button value="cancel">Cancel</button>
<button id="confirmBtn" value="default">Confirm</button>
</div>
</form>
</dialog>
<p>
<button id="updateDetails">Update details</button>
</p>
<output></output>
JavaScript
const updateButton = document.getElementById("updateDetails");
const favDialog = document.getElementById("favDialog");
const outputBox = document.querySelector("output");
const selectEl = favDialog.querySelector("select");
const confirmBtn = favDialog.querySelector("#confirmBtn");
// If a browser doesn't support the dialog, then hide the
// dialog contents by default.
if (typeof favDialog.showModal !== "function") {
favDialog.hidden = true;
/* a fallback script to allow this dialog/form to function
for legacy browsers that do not support <dialog>
could be provided here.
*/
}
// "Update details" button opens the <dialog> modally
updateButton.addEventListener("click", () => {
if (typeof favDialog.showModal === "function") {
favDialog.showModal();
} else {
outputBox.value =
"Sorry, the <dialog> API is not supported by this browser.";
}
});
// "Favorite animal" input sets the value of the submit button
selectEl.addEventListener("change", (e) => {
confirmBtn.value = selectEl.value;
});
// "Confirm" button of form triggers "close" on dialog because of [method="dialog"]
favDialog.addEventListener("close", () => {
outputBox.value = `${
favDialog.returnValue
} button clicked - ${new Date().toString()}`;
});
ç»æ è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4