为什么JavaScript对话框(alert/prompt/confirm)不被广泛使用且未处于活跃开发状态?

13
如果需要显示一些简单的确认弹窗,大多数开发者都会选择安装jQuery,找到一些对话框插件并进行美化,而不是放置一个一行代码: if(confirm("确定吗?")) { ... } 使用alert()来显示错误消息被认为是廉价的。
你能说出有多少网站正在使用prompt()吗?
那么问题来了:
  1. 这些对话框有什么问题,以至于要避免它们?是的,它们的功能和自定义非常有限,但当你不需要任何花哨的东西时,使用JS对话框仍然是一种不好的做法吗?
  2. 为什么这些对话框在过去的10年(可能更长)中没有得到改进,并且未来也没有计划进行改进?拥有原生JS访问完全可定制的桌面级对话框不是很好吗?至少添加错误/警告/信息类型的对话框和添加自定义按钮标题的功能将是一个很大的帮助。

1
http://programmers.stackexchange.com/a/106039/58336 - Bob Davies
4个回答

14

alert 显示一个模态对话框,有效地禁用浏览器UI直到它被关闭。大多数开发人员认为这是不好的设计,而大多数用户则认为这很烦人。

我发现使用模态对话框的主要问题之一是它们不允许我在回复之前打开一个新标签并进行快速的谷歌搜索。


2
那么为什么从未有人考虑为它们添加非模态选项呢? - serg
有很多基于HTML的替代方案可供使用。 - Michael Petrotta
你提到的最后一件事情也总是让我感到烦恼,但在现代浏览器中似乎不再是问题。 - tjespe
@tjespe 那些都是美好的日子。 - Amarghosh

2

在一些浏览器上,alerts() 可能会导致页面的标签突然获得焦点。偶尔有用,大多数时候很烦人。


1

我不常使用prompt、confirm或alert的原因之一是它们会冻结浏览器的其他用户界面。它们不允许用户切换到另一个标签页或进行其他操作,除非关闭对话框。


0

因为它们很丑,并且会突然弹出一个灰色框,破坏用户体验。最好使用符合您网站主题和外观的HTML对话框。

哦,对了。它们还是模态的。这更是雪上加霜。


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