70 votes

Comment effacer le contenu d'un IFRAME?

Comment effacer le contenu de mon élément IFRAME à l'aide de javascript sans y charger de page vierge?

Je peux comprendre cela: iframe_element.src = "blank.html" , mais il doit y avoir une meilleure méthode, instantanée.

112voto

McKay Points 7281
 about:blank
 

est une "URL" qui est vide. C'est toujours clair

Vous pouvez définir la source de la page pour cela, et cela va effacer.

17voto

Bogdan Points 31

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

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

// testé dans IE, Firefox et Chrome ... ça ne l'a pas fait :)

8voto

AnthonyWJones Points 122520

Votre technique est la plus robuste. C'est la seule que j'utilise moi-même. À la fois le contenu peut être diffusé sur HTTPS et l'utilisation de about:blank peut provoquer des messages d'avertissement apparaissent à l'effet de "voulez-vous inclure le contenu d'emplacement non sécurisé" ou quelque chose de ce genre.

Quelque chose d'instantané est une question de perception toutefois, si vous avez un seul Blank.html fichier sur votre site configuré avec un long cache date d'expiration, le client ne jamais chercher à la page une fois (au maximum une fois par session).

3voto

Khalid Points 21

Ou vous pouvez faire ceci:

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

2voto

Jared Points 3852

Vous pouvez aussi faire ceci:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X