2016-12-13 90 views
0

我想要做的就是調用iframe父級上的JavaScript函數。 這也在同一個域中。從IFRAME調用父JavaScript IE11

如果我創建一個按鈕來觸發從框架父:

<script> 
     function onClick() { 
      parent.hidePrintButton(); 
     } 
</script> 
<button id="test" onclick="onClick();">Call Parent Window Function</button> 

它按預期工作在所有瀏覽器。

然而,當我有一個AJAX調用執行:

parent.hidePrintButton(); 

家長不會被調用在IE,但確實在其他瀏覽器。

然後我得到的錯誤:

對象不支持屬性或方法「hidePrintButton」

這看起來就像當我與網頁互動,家長工作,但不是當它已經在iframe onload中運行。

我試過postmessage,事件監聽器,綁定,父。這些似乎都無法在父頁面上運行JavaScript。

我雖然這可能與何時按下按鈕和焦點在iframe上有關。

回答

0

無法僅修正IE11的問題。

解決這個問題的唯一辦法是,直到它與您正在尋找的響應返回創建輪詢的iframe的方法:

var keepPolling = true; 
function pollFrame() { 
    if ($("#refFrame")[0].contentWindow.processed){ 
     setProcessed(); 
     keepPolling = false; 
    } 
    if(keepPolling) { 
     setTimeout(pollFrame, 750); 
    } 
};