2017-04-16 80 views
0

我有一個div,裏面有一個iframeiframe從一個URL加載一個文件,並在這個文件中顯示一些內容。我的問題是;是否有可能關閉iframe本身內的文件div。從文件加載iframe中的jquery div

<div id="container"> 
    <iframe src="mydomain.com/index.php"></iframe> 
</div> 

我所知道的最簡單的方法是用jQuery的關閉格,但由於某些原因,我需要關閉文件加載iframe內,因爲當會話iframe重定向和需要內結束關閉名爲.container的div。

我的問題是,是否有可能從mydomain.com/index.php插入一些代碼來關閉或隱藏名爲.container的div。

回答

0

您可以使用window.postMessage在子窗口(iframe)和父窗口之間進行通信。

在iframe中,您可以具有以下功能;

function closeDivOfParent() { 
    parent.postMessage("close-div","*"); 
} 

而在父頁面你聽這些消息;

// Create IE + others compatible event handler 
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; 
var eventer = window[eventMethod]; 
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message"; 

// Listen to message from child window 
eventer(messageEvent, function(e) { 

    var key = e.message ? "message" : "data"; 
    var message = e[key]; 

    if(message === "close-div") { 
     $('div').hide(); 
    } 

}, false); 

道具的代碼和解釋在; https://davidwalsh.name/window-iframe

1

因爲它們是在同一個域中,你可以訪問使用window.parent

然後像做父窗口:

var cont = window.parent.document.getElementById('container'); 
cont.style.display='none'; 

DEMO