如何清除IFRAME的内容?

时间:2009-11-23 18:24:54

标签: javascript html iframe

如何使用javascript清除我的IFRAME元素的内容,而不会在其中加载空白页?

我可以想出这样做:iframe_element.src = "blank.html",但必须有更好的,即时的方法。

11 个答案:

答案 0 :(得分:93)

about:blank

是一个空白的“网址”。它总是很清楚

您可以将页面的来源设置为该来源,然后它将清除。

答案 1 :(得分:12)

var iframe = document.getElementById("myiframe");
var html = "";

iframe.contentWindow.document.open();
iframe.contentWindow.document.write(html);
iframe.contentWindow.document.close();

在IE,Firefox和Chrome中测试过......它做到了:)

答案 2 :(得分:7)

您的技术是最强大的。它是我自己使用的那个。有时,内容可能通过HTTPS传送,并且使用about:blank会导致警告消息显示为“您是否要包含来自不安全位置的内容”或某些此类内容。

即时性是一个感知问题但是如果您的站点上有一个配置了长缓存到期的Blank.html文件,则客户端将只获取一次页面(最多一次每个会话)。

答案 3 :(得分:3)

或者你可以这样做:

var iframe_element = window.frames['iframe_name'];
iframe_element.document.open();
iframe_element.document.close();

答案 4 :(得分:2)

在包含许多IFrame的网页上,我遇到了“about:blank”的困难。它似乎并不是每个浏览器中的有效位置(尽管我从未发现过)。无论如何,我对javascript:void(0);

感到满意

答案 5 :(得分:2)

你也可以这样做:

<html>
<head>
<script>
    var doc = null;
    window.onload = function() {
        alert("Filling IFrame");
        doc = document.getElementById("test");

        if( doc.document ) {
            document.test.document.body.innerHTML = "<h1>test</h1>"; //Chrome, IE
        }else {
            doc.contentDocument.body.innerHTML = "<h1>test</h1>"; //FireFox
        }

            setTimeout(function() { 
                alert("Clearing IFrame");

                if( doc.document ) {
                    document.test.document.body.innerHTML = ""; //Chrome, IE
                }else {
                    doc.contentDocument.body.innerHTML = ""; //FireFox
                }

            }, 1000);
        };
    </script>
</head>

<body>
    <iframe id="test" name="test">

    </iframe>
</body>
</html>

答案 6 :(得分:1)

//首先我从其ID中获取窗口。

var my_content = document.getElementById('my_iframe').contentWindow.document;

//然后我通过将body标签内部HTML设置为空字符串来清除它。

my_content.body.innerHTML="";

//现在,当我编写新内容时,它不会附加到正文的末尾,而iframe正文只会包含新内容。

my_content.write(new_content);

答案 7 :(得分:0)

就去做吧:

var iframe = document.getElementById("iframe");
iframe.removeAttribute('srcdoc');

在 Chrome 中工作

答案 8 :(得分:-1)

function getContentFromIframe(iFrameName)
{
    var myIFrame = document.getElementById(iFrameName);
    var content = myIFrame.contentWindow.document.body.innerHTML;

    //Do whatever you need with the content    
}

答案 9 :(得分:-1)

只需获取Iframe并从中删除documentElement。 Iframe将为空白

 var frame = document.getElementById("YourFrameId"),
 frameDoc = frame.contentDocument || frame.contentWindow.document;
 frameDoc.removeChild(frameDoc.documentElement);

答案 10 :(得分:-2)

$( “#IFRAME”)的内容()发现( “正文”)HTML( '');。