Javascript 带有自定义函数的window.opener在Safari中不起作用

Javascript 带有自定义函数的window.opener在Safari中不起作用,javascript,safari,window.open,window.opener,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(

我对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()定义的,那可能是个问题!window.callBackIntegrationCompleted=callBackIntegrationCompleted;这正是我需要的。