window.opener 自定义功能在 Safari 中不起作用

window.opener with a custom function does not work in Safari

我在使用 Safari 时遇到问题,具体来说,就是找不到来自父 window 的 window.opener 函数。我调用的函数在 Chrome 和 Firefox 中运行良好。有人有什么建议吗?

Window 1(父级)

用以下内容打开 window 2:

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

Window 2(弹出)

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

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.

的几种变体

Window 1(父级)回调

原来打开弹窗的父window有如下JS函数,但是一直到不了这一步

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

编辑:请将其视为评论。

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

在对 eval() 的调用中,在 window 的参数字符串 a 属性 中创建了一个函数。如果回调函数 是使用 eval() 定义的,则可能是一个问题