我正在尝试覆盖confirm()
Javascript 中的标准方法(制作漂亮的 UI 和东西)。我已经阅读了 100 篇“无法完成”的帖子,但我不想放弃,直到我给它一个公平的机会。:)
所以,真正的问题当然是该confirm()
方法必须阻止所有 javascript 执行,直到用户选择一个选项。那么,Javascript 中有哪些具有阻塞行为的方法呢?我已经能够想出5个:
alert()
- 不适合我,因为它显示了自己不需要的 UI;confirm()
- 相同的问题alert()
;- 无限循环——即使是现代浏览器也会像疯了一样吃掉 CPU 并显示“停止 javascript?” 几秒钟后提示;
XmlHttpRequest
在同步模式下 - 有点,但它涉及服务器......showModalDialog()
- 很好,但我需要一个特定的设计,另外还有一些浏览器兼容性要求......
到目前为止,我最好的方法是<iframe>
使用提示创建一个(然后获得自己的 javascript 执行线程)并阻止XmlHttpRequest
直到用户在<iframe>
. 不幸的是,这涉及在服务器之间来回传递结果,我想让这个 100% 客户端。此外,在打开对话框时它会占用一个服务器线程,并且可能会应用一些特定于浏览器的 ajax 超时。
谁能想到任何其他阻止执行的 Javascript 方法,这些方法可能被(ab)用来达到预期的效果?