防止按下回车键关闭警告框。

5
基本上,我希望确保用户必须手动关闭JavaScript警告,而不能通过按回车键退出警告。
(这听起来很恶意,但在应用程序中,您经常按回车键,我需要确保他们不会错过警告提供的重要信息)。
我尝试设置document.onkeydown,但无济于事:
document.onkeydown = disabled;

然后在禁用函数中

function disabled(event) {
    if (event.keyCode==13) {
        event.preventDefault();
    }
}

有没有一种方法可以在不必切换到使用模态框的情况下完成这个任务?

6
将调用alert()的代码更改为自定义模态窗口实现。 - Halcyon
微小的挑剔…按回车键一种手动操作,用户正在手动关闭警报 - David
@Halcyon:问题的结尾是:“有没有一种方法可以实现这一点,而不必切换到使用模态框?”(我强调) - T.J. Crowder
@T.J.Crowder,我不确定你为什么发表那条评论。window.alert()是一个模态框。我猜重点在于“自定义”。如果您不确定该术语,请参阅:https://en.wikipedia.org/wiki/Modal_window - Halcyon
@Halcyon:对我来说,很明显OP在谈论一个自定义模态窗口实现。但这不是什么大问题。关于你的编辑:当然我确定这个术语。我也有相当好的掌握Web编程行话。猜猜“模态”在那里99次中有多少次是什么意思。 - T.J. Crowder
2个回答

8

如果不使用模态框,有没有其他方法可以实现这个功能?

没有。因为alert位于文档之外,您无法添加任何事件处理程序。您已经确定的路径(切换到“模态”元素)是您必须走的路。它还具有改进样式、防止浏览器抑制警报等优点。当然,需要进行一些重构以处理异步完成。


0
一个不太优雅的解决方案是让警报始终处于前景,以便用户能够看到它,但通过让窗口聚焦于其他对象来使警报变灰,这样用户的“输入”就会进入那个对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接