获取跨源文档的showModalDialog结果



本网站使用showModalDialog。根据在对话框中完成的操作,我们可能希望也可能不希望重新加载打开对话框的页面。我们通过让对话框JavaScript将window.returnValue设置为truefalse来做到这一点,然后底层页面在调用showModalDialog的返回值中检查它。

当对话框文档和底层页面从相同的原始域加载时,此操作可以正常工作。当对话框的域与页面的域不匹配时,从showModalDialog返回的值总是undefined

我已经考虑过以不同的方式将标志从对话框传递到底层窗口。幸运的是,我们的目标是所有支持postMessage的浏览器,但对话框JavaScript似乎没有获得window.opener的值,所以我认为它不能获得对窗口的引用,所以它可以发布消息。实现像这样的iframe解决方案对于我们的代码库是不可行的,因为它需要我们在多个站点上安装iframe接收文档,这些站点都可以打开相同的对话框。

有没有更好的方法让我们有一个对话框与跨源打开页面通信,而不需要他们重新加载?

我可能找到了我自己的答案。据我所知,如果我将开启器文档和对话框文档的document.domain属性设置为相同的值,我应该能够访问此信息。由于两者都在同一根域名的子域内,因此应该可以工作。

相关内容

  • 没有找到相关文章

最新更新