1

我有以下打开一个加载了html页面的iframe,效果很好,但是如何向页面/iframe添加一个关闭按钮,以便它简单地关闭iframe/页面并且不影响它打开的页面:

(function (d) {
var modal = document.createElement('iframe');
modal.setAttribute('src', 'mypage.html'));
modal.setAttribute('scrolling', 'no');
modal.className = 'modal';document.body.appendChild(modal);
var c = document.createElement('link');
c.type = 'text/css';
c.rel = 'stylesheet';
c.href = '//myurl.com/testes.css';
document.body.appendChild(c);
}(document));

我尝试了以下尝试关闭它的方法,但是随后在 iframe 中给出了 404 消息:

<a href="window.parent.document.getElementById('iframe').parentNode.removeChild(window.parent.document.getElementById('iframe'))">Close</a>

如果有帮助,我将在页面上加载 jquery,这意味着,如果有 jquery 解决方案。

4

2 回答 2

2

链接应该链接到某个地方,并且该href属性需要一个 URI。

使用 a<button type="button">并将点击处理程序绑定到它。(你可以使用一个onclick属性,但这不会不显眼

不引人注目的方法是:

<a href="someUriWithoutAnIframe" target="_parent">foo</a>

然后沿线绑定一个事件处理程序

myLink.addEventListener('click', function (e) {
    var d = window.parent.document;
    var frame = d.getElementById('myFrame');
    frame.parentNode.removeChild(frame);
    e.preventDefault();
});
于 2012-08-02T10:20:54.260 回答
0

您可以将链接放入 iframe 的某种容器 div 中,使用以下结构创建后者:

<div id="iframe-container">
  <a href='#' onclick='this.parentNode.parentNode.removeChild(this.parentNode)'>Close</a>
  <iframe src="http://some.web/page.html" />
</div>

无需任何框架即可工作。

于 2012-08-02T10:30:55.250 回答