删除showModalDialog API

Bre*_*tin 5 javascript firefox jquery google-chrome showmodaldialog

随着即将showModalDialog从各种浏览器中删除API,我们公司与许多提供大规模企业Web应用程序的公司一样,现在面临着一个重大的困境.

虽然我们将调用集中到showModalDialog最多3行代码,但我们广泛依赖此代码来提供模态用户提示的反馈(快速搜索解决方案显示大约2400个实例).

我们可以showModalDialog相当容易地删除并用基于Javascript/css的替代方案替换它,这不是问题.我们面临的问题是所有的调用代码都不会被阻塞,例如

if(doConfirm(...)) {
   ...
} else {
   ...
} 
Run Code Online (Sandbox Code Playgroud)

由于引入了非阻塞替代方案,上述内容将会失败.我们也不能使用内置的阻塞方法(警告,确认),因为在许多情况下对话框按钮是自定义的,并且还可以设置样式以适应我们的应用程序.

基于以上所述,是否有任何实用的解决方法/解决方案可以用来避免重新考虑如此多的遗留先前阻塞代码?

Ber*_*rgi 1

将无法避免使用异步的、基于事件的代码。

实用的解决方法以避免手动重构代码?

您可以尝试使用 javascript-to-javascript 编译器,将关键字引入awaitjs。它应该自动将您的代码转换为异步版本。

免责声明:我没有使用过这些