2012-08-02 168 views
0

我有以下打開一個加載了html頁面的iframe,效果很好,但如何添加關閉按鈕到頁面/ iframe,因此它只關閉iframe /頁面並且不會影響頁面開了:js 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解決方案。

回答

0

鏈接應該鏈接到某個地方,href屬性需要一個URI。

使用<button type="button">並將點擊處理程序綁定到它。 (你可以使用一個onclick屬性,但是這不會是unobtrusive

不顯眼的辦法是:

<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(); 
}); 
+1

也可以在'href'中使用'javascript:'前綴:'Click me' – Hubro 2012-08-02 10:22:36

+4

可以做很多事情,但應該做的事情很少,這就是其中之一。 – Quentin 2012-08-02 10:24:01

+0

我剛剛添加到選項:-) – Hubro 2012-08-02 10:25:26

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> 

沒有任何框架。