2017-04-16 43 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