[Javascript] Safari 15.4 後原生支援 <dialog>:前端不再需要外部 Modal 套件
2025-07-21
之前要在網頁上做到彈跳視窗,我都直覺想到要用一些外掛套件,像是 jQuery Dialog 或是 jQuery Modal
然後必須要引入一些 library ,最近有需要看一下,發現故事變了,原來現在已經可以用 dialog 了
原因很簡單:Safari。
Safari 以前不支援 <dialog>,大家都怕踩雷,但從 iOS / macOS Safari 15.4(2022/03/14) 之後正式支援
這表示 2025 年的今天可以放心使用 <dialog>
不需要再引入任何的 library 就可以辦到
我直接給程式碼,這是我現在最常用的版本
功能簡單可讀性高、不用任何第三方依賴
result:
結論:
1. showModal() 幫你處理一堆麻煩
背景阻擋、焦點管理、自動 ESC 關閉。
你不用寫任何 code,全部原生搞定。
2. method="dialog"
按哪個按鈕,dialog.returnValue 就返回哪個 value。
不需要寫 click handler,不用 preventDefault()
不用管理 state他就會自動關閉。
3. 不用外部依賴
基於這三個理由,跟程式碼簡潔程度,不用不行了...爽
標籤:
ASP.net
,
HTML
,
Javascript
-- Yesterday I wrote down the code. I bet I could be your hero. I am a mighty little programmer. 如果這篇文章有幫助到您,簡單留個言,或是幫我按個讚,讓我有寫下去的動力...
