javascript - 具有自定义功能的 window.opener 在 Safari 中不起作用

标签 javascript safari window.open window.opener

我在使用 Safari 时遇到问题,特别是没有从父窗口中找到 window.opener 函数。我调用的函数在 Chrome 和 Firefox 中运行良好。有人有什么建议吗?

窗口 1(父级)

使用以下内容打开窗口 2:

window.open(requestUrl, "_blank", "width=440, height=500, scrollbars");

窗口 2(弹出)

请求 url 页面返回后,将调用以下内容:

window.parent.opener.callBackIntegrationCompleted("testing");
window.close();

我在第一行收到以下错误:

TypeError: undefined is not a function (evaluating 'window.parent.opener.callBackIntegrationCompleted("testing")')

注意:我尝试了 window.opener、parent.window.opener 和 window.parent.opener 的几种变体。

窗口 1(父级)回调

原来打开弹窗的父窗口有下面的JS函数,但是一直没到这一步。

function callBackIntegrationCompleted(code) {
    console.log("got here");
}

最佳答案

编辑:请将此视为评论。

function callBackIntegrationCompleted(code) {
    console.log("got here");
}
window.callBackIntegrationCompleted = callBackIntegrationCompleted;

在对 eval() 的调用中,使参数字符串中的函数成为窗口的属性。如果回调函数 是使用 eval() 定义的 这可能是一个问题

关于javascript - 具有自定义功能的 window.opener 在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32639654/

相关文章:

javascript - 使用 d3.js 未显示选择选项?

javascript - Struts 2 标签的扩展扰乱了页面的呈现

macos - 当我没有 Mac 时,在 Mac/Safari 上测试 Web 应用程序

javascript - 为什么 window.open() 在同一个窗口中加载 URL?

javascript - CRM 2011 - 从 IFrame 中的页面打开弹出窗口

javascript - 如何在完整日历插件中添加周列

jquery - Safari 中的 HTML5 音量问题

javascript - 在 https 模式下使用 webpack-dev-server 的 Safari 刷新循环

javascript - 如何在 JavaScript 中关闭选项卡或重新打开弹出选项卡?

javascript - "!--"在 JavaScript 中做了什么?