从自身动态删除iframe

时间:2011-02-25 11:33:07

标签: javascript jquery 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');
}

3 个答案:

答案 0 :(得分:1)

因为你正在使用jquery,所以只需写

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

只有在整个页面上只有1个iframe时才会有效。否则,您可以在普通的jquery fasion(iframe#id或whatnot)中指定选择器。

答案 1 :(得分:0)

请尝试以下任一选项:

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

您可以使用detach() / hide()代替remove()。

答案 2 :(得分:0)

如果你只是想隐藏它,你可能不需要删除它,也许

jQuery('#OverlayFrame').toggle();