开发手册 欢迎您!
软件开发者资料库

JavaScript iframe跨域(origin) iframe 提示框 alert()、confirm()、prompt() 不能用原因及解决方法

最近发现Chrome 92以上可能不再支持 alert()、confirm()、prompt() ,而Chrome 版本 92.0.4515.107(64 位官方版本)中提示框方法不能用,但Edge 版本 91.0.864.71(64 位官方版本)可以能正常用。尝试将alert() 替换为 window.alert(),但还是不能用。本文主要介绍JavaScript 跨 origin iframe 提示框 alert()、confirm()、prompt() 不能用原因及解决方法。

 问题原因:

Chrome的新版本删除了对 iframe跨域 origin中 alert()confirm()prompt()的支持。

相关文档https://www.chromestatus.com/feature/5148698084376576

解决方法

通过Window.postMessage()从iframe发送消息到父页面,并通过父页面显示对话框。

实现代码:

https://example-a.com/parent.html

                    Parent (domain A)                        

Parent (domain A)