Подтвердить что ты не робот

Как очистить содержимое IFRAME?

Как очистить содержимое элемента IFRAME с помощью javascript, не загружая в него пустую страницу?

Я могу это сделать: iframe_element.src = "blank.html", но должен быть лучший, мгновенный метод.

4b9b3361

Ответ 1

about:blank

- это "URL", который пуст. Это всегда ясно.

Вы можете установить для этого источника страницы, и он очистится.

Ответ 2

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

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

протестирован в IE, Firefox и Chrome... он сделал это:)

Ответ 3

Ваша техника самая надежная. Это тот, который я использую сам. Иногда контент может доставляться через HTTPS, а использование about: blank может привести к появлению предупреждающих сообщений о влиянии "вы хотите включить контент из небезопасного местоположения" или что-то подобное.

То, что мгновение - это вопрос восприятия, однако, если у вас есть один файл Blank.html на вашем сайте, настроенный с длительным истечением срока кеширования, клиент будет когда-либо извлекать страницу один раз (не чаще одного раза в сеанс).

Ответ 4

Или вы можете сделать это:

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

Ответ 5

У меня были трудности с "about: blank" на страницах со многими IFrames. Кажется, это не действительное место в каждом браузере (я так и не убедился, хотя). Во всяком случае, я доволен тем, что javascript:void(0);

Ответ 6

Вы также можете сделать это:

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

Ответ 7

//Сначала я получаю окно от его идентификатора.

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

//Затем я очищаю его, устанавливая внутренний тег body внутри HTML в пустую строку.

my_content.body.innerHTML="";

//Теперь, когда я пишу свой новый контент, он не добавляется в конец тела, а тело iframe будет содержать только свежий контент.

my_content.write(new_content);

Ответ 8

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

    //Do whatever you need with the content    
}

Ответ 9

Просто получите Iframe и удалите documentElement из него. Iframe будет пустым

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

Ответ 10

$( "# IFrame" ) содержание() найти ( "тело" ) HTML ( '');...