javascript - window.opener 在 chrome 版本 >88 中返回 null
问题描述
Facebook 第三方登录弹出(子)窗口在成功登录后不会返回到父级。进一步调试显示 window.opener 设置为空值。我们在 chrome 浏览器升级后观察到这个问题。通过谷歌搜索,我们了解到这是 google 引入的安全修复程序 - window.opener 被分配为 null 并阻止弹出访问父窗口。
家长:
window[‘fbSignIn’] = window.open(facebookAuthTokenUrl, ‘fbSignIn’, 600, 600);
// Exposing a function to global window object, to listen FB Sign-In result
window.test1 =(data) => {
}
孩子:
window.opener.test1(JSON.parse(result));
—-> 这里我们无法访问 test1,因为 window.opener 为 null
我正在寻找解决此问题的建议。我敢肯定,许多其他人也可能遇到过这个问题,他们是如何解决这个问题的?
提前致谢
解决方案
推荐阅读
- ruby-on-rails - 在我的项目中更新捆绑包时出现错误无法加载此类文件-dry/types/compat/form_types (LoadError)
- python - scipy 中的 fsolve 是如何工作的?它使用什么方法来寻找根源?
- docker - Docker 是如何看似“升级” cmd.exe 控制台的?
- linux - 如何更改 Visual Studio Code 的 UI 字体?
- java - 如何解决日志信息在 selenium 项目中使用 `new FirefoxOptions()` 优于 `DesiredCapabilities.firefox()`
- python - 有没有办法能够使用 os 使用变量路径
- kotlin - 将 java 类迁移到 Kotlin - 无法解析符号注释类
- jenkins - 如何使用来自另一个自由式项目的属性文件在管道中加载变量?
- asp.net - Forbidden 您无权访问此服务器 IIS 上的 /
- docker - 连接到 docker 容器内的 Nest.js 服务器