在 Chrome for iOS 中处理弹出窗口时的两个观察结果:
- 在 iframe 中生成的弹出窗口将杀死父窗口,选项卡将关闭,再也不会出现
- 在非 iframe 上下文中生成的弹出窗口打开一个带有弹出窗口的新选项卡(预期),然后当弹出窗口完成其业务时,无法使用“window.opener”与父级通信
对于 (2),一个可能的选项是在父窗口中使用 localStorage 轮询。对于(1),我还没有找到解决方案。
细节:
- 在 (1) 中,iframe 托管在 HTTP 站点上,但 iframe 中的内容是 HTTPS
- 我们无法在除 Chrome for iOS 之外的任何其他环境中重现 (1) 或 (2)
问题:有什么方法可以在 Chrome iOS 中处理弹出窗口与其父级之间的通信而不会(a)杀死标签本身或(b)父级永远徘徊等待响应?如果没有适合这些问题的可行解决方案,那么,我能做些什么呢?