首页 > 解决方案 > 如何使 Chrome 92 从不同子域上打开的 iframe 显示 alert()、prompt() 和 confirm()

问题描述

我有这种情况:

来自http://desktop.ourdomain.local的页面包含一个 src="http://legacy-application.ourdomain.local" 的 iframe

http://legacy-application.ourdomain.local,广泛使用警报和提示,在谷歌发布 chrome 92 之前效果很好,这表明这不再是一种选择(参见https://www.chromestatus.com/功能/5148698084376576

在这里解释的那些中尝试了很多东西

还有许多关于 CORS 的试验,以及 iframe 沙盒的许多组合(allow-same-origin allow-scripts allow-modal ...)

有没有人遇到同样的问题并解决了?

标签: javascriptgoogle-chromeiframesame-origin-policy

解决方案


正如@Bravo 所指出的,谷歌提供了一种“禁用”限制的方法,至少在他们决定保留或删除之前,这将在 12 月 15 日发布 chrome 96 时发生。在这里我能够获得一个令牌可以作为“Origin-Trial”标题的值添加到需要禁用该功能的页面上。仅当站点以 https 提供时,令牌才起作用,但这应该比使用警报和确认重写所有表单更容易解决!与此同时,我有时间找到一个明确的解决方案。


推荐阅读