Javascript 如何清除IFRAME的内容?

Javascript 如何清除IFRAME的内容?,javascript,html,iframe,Javascript,Html,Iframe,如何使用javascript清除IFRAME元素的内容,而不向其中加载空白页面 我可以想办法做到这一点:iframe\u element.src=“blank.html”,但必须有更好的即时方法 about:blank 是一个空白的“URL”。总是很清楚的 您可以将页面的源设置为该值,它将被清除。对于包含许多iFrame的页面,我很难使用“about:blank”。它似乎不是每个浏览器中的一个有效位置(尽管我从未确定)。无论如何,我对javascript:void(0)很满意您的技术是最可靠的

如何使用javascript清除IFRAME元素的内容,而不向其中加载空白页面

我可以想办法做到这一点:
iframe\u element.src=“blank.html”
,但必须有更好的即时方法

about:blank
是一个空白的“URL”。总是很清楚的


您可以将页面的源设置为该值,它将被清除。

对于包含许多iFrame的页面,我很难使用“about:blank”。它似乎不是每个浏览器中的一个有效位置(尽管我从未确定)。无论如何,我对
javascript:void(0)很满意

您的技术是最可靠的。这是我自己用的。有时,内容可能通过HTTPS传递,使用about:blank可能会导致出现警告消息,大意是“是否希望包含来自不安全位置的内容”或类似的内容


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

您也可以这样做:

<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>

var doc=null;
window.onload=函数(){
警报(“填充IFrame”);
doc=document.getElementById(“测试”);
如果(doc.document){
document.test.document.body.innerHTML=“test”//Chrome,IE
}否则{
doc.contentDocument.body.innerHTML=“测试”//FireFox
}
setTimeout(函数(){
警报(“清除IFrame”);
如果(doc.document){
document.test.document.body.innerHTML=“”;//Chrome,IE
}否则{
doc.contentDocument.body.innerHTML=“”;//FireFox
}
}, 1000);
};
或者您可以执行以下操作:

var iframe_element = window.frames['iframe_name'];
iframe_element.document.open();
iframe_element.document.close();
$(“#iframe”).contents().find(“body”).html(“”)


在IE、Firefox和Chrome中测试。。。它做到了:)

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

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

//首先,我从它的Id获取窗口

var my_content = document.getElementById('my_iframe').contentWindow.document;
//然后我通过将body标记inner HTML设置为空字符串来清除它

my_content.body.innerHTML="";
//现在,当我编写新内容时,它不会附加到正文的末尾,iframe正文将只包含新内容

my_content.write(new_content);

如果禁用Javascript会发生什么?他特别询问如何在Javascript之后重置IFrame位置。虽然我想象javascript:URL会优雅地降级,但我不确定。iframe\u element.src=“about:blank”doing document.getElementByid(“frame\u name”)。src=about:blank导致应用程序在src=about:blank@zee可以,但您可以使用document.querySelector(“.frame\u name”).contentWindow.location.replace(
about:blank
);工作起来就像一个符咒!如果您想添加基本消息(或任何内容),也可以在文档打开时写入文档到窗口。这不会提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论-您可以随时对自己的帖子发表评论,一旦您有足够的评论,您就可以发表评论。如果iframe最初是从sam加载的,您也只能修改iframe的内容e域作为包含页面。@PeterL。虽然我同意这个答案过于简洁而没有用处,但从技术上讲,它确实回答了OP,因为
jQuery
JavaScript
。在我看来,简单…最好的方法。我没有使用带有src属性的iframe,所以我不想添加src属性“about:blank”.我正在加载和清除基于变量中保存的HTML数据的iframe,所以这绝对是完美的。
my_content.body.innerHTML="";
my_content.write(new_content);