2011-02-25 78 views
0

我目前正在開發一個覆蓋並且有問題。事實上,我的覆蓋是通過我在所有網頁中注入的iframe來實現的。從本身動態移除一個iframe

疊加:http://img641.imageshack.us/img641/691/toolbarm.png

我想只是隱藏它,當我上的關閉按鈕按下位於右側。

這裏是我的功能注入疊加(IFRAME):

injectOverlay: function() 
{ 
     var body = $('body'), 
     OverlayURL= chrome.extension.getURL("overlay.html"), 
     iframe = $('<iframe id="OverlayFrame" scrolling="no" src="'+OverlayURL+'">'); 

     body.append(iframe); 
} 

這裏是代碼隱藏(但它沒有工作):

function hideOverlay() 
{ 
    var iframe = document.getElementsByName('iframe')[0]; 
    iframe.parentNode.removeChild(iframe); 

    // $('#OverlayFrame', window.parent.document).remove(); 

    alert('Overlayclosed'); 
} 
+0

在哪裏運行的代碼隱藏呢?在iframe內部還是外部? – Chris 2011-02-25 15:39:14

+0

在一個名爲Tools.js的文件上 – Sindar 2011-02-25 15:43:06

+0

還沒有人想法? – Sindar 2011-02-28 09:02:15

回答

1

既然你無論如何,使用jquery,只需寫

var fram = $("iframe").get(0); 
fram.parentNode.removeChild(fram); 

這隻會在你在整個頁面上只有1個iframe時才起作用。否則,你可以在正常的jquery fasion(iframe#id或whatnot)中指定選擇器。

+0

它沒有工作:s – Sindar 2011-02-25 11:45:59

+0

嘗試fram.remove();直接 甚至更​​好$(「iframe」)。get(0).remove(); – 2011-02-25 11:48:03

+0

您確定在頁面中只有1個iframe嗎?嘗試$(「iframe#OverlayFrame」)。get(0)。 – Cray 2011-02-25 11:51:53

0

嘗試以下任一選項:

$("iframe").remove() 
$('#OverlayFrame').remove() 
$('iframe#OverlayFrame').remove() 

可以使用detach()/hide(),而不是刪除的()。

+0

這是一樣的。沒有什麼改變 – Sindar 2011-02-25 11:56:18

+0

@Sindar:改進你的錯誤報告。什麼是控制檯錯誤?你對這種技術進行了哪些調試來發現問題? – 2011-02-25 13:02:06

+0

@Tomalak看看Cray的帖子,看看我做了什麼;) – Sindar 2011-02-25 13:11:50

0

如果您只是想隱藏它,你不需要刪除它,也許

jQuery('#OverlayFrame').toggle(); 
相關問題