打开时,HTML对话框将聚焦在按钮元素上。
- 论坛
- 打开时,HTML对话框将聚焦在按钮元素上。
11 浏览
打开时,HTML对话框将聚焦在按钮元素上。
我当前使用JS打开一个。为了演示目的,我的对话框中只有一个
元素。
我的问题是,当我使用.showModal()
打开对话框时,对话框中的按钮会自动获得焦点,原因不明。请参见下面的问题示例:
const dialog = document.querySelector("#dialog"); document.querySelector("#open-btn").addEventListener('click', () => { dialog.showModal(); }); document.querySelector("#close-btn").addEventListener('click', () => { dialog.close(); });
#close-btn:focus { background: red; }
如您所见,当对话框打开时,对话框中的按钮会应用:focus
样式,显示它已获得焦点。
我的问题是:为什么会发生这种情况?我期望的行为是对话框打开时按钮不获得焦点。我知道可以通过.blur()
来程序化地取消按钮的焦点,但这感觉就像是“隐藏”问题而不是解决实际引起问题的原因。
注意:这个问题存在于最新版本的Google Chrome(版本81.0.4044.138)中。