programing

IFRAME의 내용을 지우는 방법은 무엇입니까?

nasanasas 2020. 12. 4. 08:24
반응형

IFRAME의 내용을 지우는 방법은 무엇입니까?


빈 페이지를로드하지 않고 자바 스크립트를 사용하여 IFRAME 요소의 콘텐츠를 지우려면 어떻게해야합니까?

나는 이것을하기 위해 알아낼 수있다 : iframe_element.src = "blank.html", 그러나 더 나은, 즉각적인 방법이 있어야한다.


about:blank

비어있는 "URL"입니다. 항상 분명해

페이지의 소스를 설정하면 지워집니다.


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

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

IE, Firefox 및 Chrome에서 테스트되었습니다.


당신의 기술이 가장 강력합니다. 나 자신을 사용하는 것입니다. 때때로 콘텐츠는 HTTPS를 통해 전달 될 수 있으며 about : blank를 사용하면 "보안되지 않은 위치의 콘텐츠를 포함 하시겠습니까?"라는 경고 메시지가 표시 될 수 있습니다.

즉각적인 것은 인식의 문제이지만 긴 캐시 만료로 구성된 사이트에 단일 Blank.html 파일이있는 경우 클라이언트는 페이지를 한 번만 가져옵니다 (세션 당 최대 한 번).


또는 다음을 수행 할 수 있습니다.

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

IFrame이 많은 페이지에서 "about : blank"에 어려움을 겪었습니다. 모든 브라우저에서 유효한 위치는 아닌 것 같습니다 (하지만 확실히 알 수는 없습니다). 어쨌든 나는 행복하다javascript:void(0);


다음과 같이 할 수도 있습니다.

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

// 먼저 Id에서 창을 가져옵니다.

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

// 그런 다음 본문 태그 내부 HTML을 빈 문자열로 설정하여 지 웁니다.

my_content.body.innerHTML="";

// 이제 새 콘텐츠를 작성할 때 본문 끝에 추가되지 않고 iframe 본문에 신선한 콘텐츠 만 포함됩니다.

my_content.write(new_content);

Iframe을 가져 와서 documentElement를 제거하십시오. Iframe이 비어 있습니다.

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

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

    //Do whatever you need with the content    
}

$("#iframe").contents().find("body").html('');

참고URL : https://stackoverflow.com/questions/1785040/how-to-clear-the-content-of-an-iframe

반응형