如何在Javascript中创建TRULY模态警报/确认?

时间:2009-11-30 15:41:13

标签: javascript

我正在筛选JavaScript的prompt()confirm()替代品。我需要创建一些有三个或更多选项的confirm()和alert()。我想使用我已经使用的Lightbox类。但是,我找到的替换都没有直接返回操作的结果,如confirm()和prompt()可以:

success = confirm("Success yes / no?");
if (success == true)
 ......

可以写一个替换,以便它以相同的方式运行,即它打开一个对话框,等待用户输入并返回点击了哪些按钮?或者这是不可能的(这就是我现在所怀疑的)你必须通过将动作附加到“是/否/无论”按钮本身来解决它?

  

编辑:毕竟,我决定不接受Josh的回答。它是完全有用的,但它没有回答这个问题 - 有没有办法在Javascript中拥有真正的模态对话框?似乎没有。

2 个答案:

答案 0 :(得分:3)

大多数具有UI组件的JavaScript框架都有某种提供回调的对话框。查看jQuery UI,例如:http://jqueryui.com/demos/dialog/

我在多个项目中使用它来完成您所描述的内容。

编辑:我希望建议一个解决方法。遗憾的是,JavaScript不包括覆盖默认的基于浏览器的Alert(),Confirm()或Prompt()对话框的方法和添加其他按钮或选项。

答案 1 :(得分:2)

IE和Firefox 3都有一个showModalDialog方法,允许您以模态方式显示整个网页。但是,对于真正的跨浏览器解决方案,您无法使用它。

许多流行的框架提供了一种机制,通过显示HTML元素并在显示元素时禁止访问网页的其余部分来实现。