2015-09-17 519 views
1

我遇到了Safari問題,特別是沒有從父窗口找到window.opener函數。我打電話的功能在Chrome和Firefox中運行良好。有沒有人有任何提示?具有自定義功能的window.opener在Safari中不起作用

窗口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"); 
} 

回答

1

編輯:請把它當作評論。

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

在eval()的調用中,使參數字符串中的函數成爲窗口的屬性。如果回調函數使用eval()定義,則可能是問題

+0

太棒了! window.callBackIntegrationCompleted = callBackIntegrationCompleted;正是我所需要的。 – CaptCheech

相關問題