删除 showModalDialog API

2023-12-14

随着即将拆除showModalDialog来自各种浏览器的 API,我们公司像许多其他提供的公司一样大型企业 Web 应用程序现在面临着一个重大的困境。

虽然我们已将呼叫集中到showModalDialog由于只有 3 行代码,我们广泛依赖此代码来提供模式用户提示的反馈(快速搜索该解决方案会发现大约 2400 个实例)。

我们可以撕掉showModalDialog相当容易并用基于 Javascript/css 的替代方案替换它,这不是问题。我们面临的问题是所有调用代码将不再阻塞,例如

if(doConfirm(...)) {
   ...
} else {
   ...
} 

由于引入了非阻塞替代方案,上述内容将完全失败。我们也无法使用内置的阻止方法(警报、确认),因为对话框按钮在许多情况下是自定义的,并且样式也适合我们的应用程序。

根据以上所述,有没有务实可以采用哪些变通方法/解决方案来避免重构大量遗留的先前阻塞代码?


您可以通过使用 my 来避免使用回调函数showModalDialog 填充,这会暂停后续语句的执行,直到模式关闭。它通过使用生成器、承诺和yield关键词。它适用于最新的 Opera 和 Google Chrome。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除 showModalDialog API 的相关文章

随机推荐