2011-05-22 32 views
0

我希望能夠從本身中刪除iframe。 iframe是動態創建的,內容是用'src'加載的。如何從本身內部刪除iframe(已動態創建並加載了src)

創建我的iframe這樣的:

var i = document.createElement('iframe'); 
    i.id = 'proxy_frame'; 
    i.name = 'proxy_frame'; 
    i.setAttribute('src', url); 
    document.body.appendChild(i); 
從「URL」中

然後,我希望能夠刪除/關閉iframe中。

之前將數據加載到的IFRAME SRC與我用文件撰寫:

window.frames['proxy_frame'].document.write(html); 

,然後我abloe刪除使用iframe:

window.parent.document.getElementById("proxy_frame").parentNode.removeChild(window.parent.document.getElementById("proxy_frame")); 

但是,這並不與工作'SRC'。

注意:這是一個書籤,所以我不想使用jQuery或其他庫。

+0

是在同一個域的網址是什麼? – pimvdb 2011-05-22 09:13:51

+0

你的意思是當你設置'src'屬性時,它不再能被刪除嗎?這聽起來像你可能會碰到同源政策。 – alex 2011-05-22 09:15:08

+0

Url不在同一個域中。所以當然是它的同源策略,如果我用document.write()加載內容,就不會發生這種情況。謝謝。我想知道我能否以其他方式解決這個問題。 – 2011-05-22 09:45:02

回答

2

在父頁面中定義的方法

function removeElement() { 
    var d = document.getElementById('body'); // or any other parent element 
    var proxy_frame = document.getElementById('proxy_frame'); 
    d.removeChild(proxy_frame); 
} 

要在自己的iframe調用此方法簡單地使用這個

<a href="#" onclick="top.window.removeElement();">Remove me</a> 
+1

謝謝,但由於上面討論的同源策略,「錯誤:權限被拒絕訪問屬性'removeElement'」。 – 2011-05-22 09:45:18

1

你不能只要是訪問父頁面的不同域。

在您的網站中設置可用於刪除iframe的頁面,然後在iframe中轉到該頁面。