web-dev-qa-db-fra.com

Supprimer l'iframe avec javascript

J'essaie de supprimer les balises iFrame de mes documents. C'est la fonction. Mais cela ne semble pas fonctionner. Voici mon exemple de code

<script>
function removeiframe() {
            alert("Hello Lovely World");
            var markup = document.body.innerHTML;

            var filtered=markup.replace(/(<iframe.*?>.*?<\/iframe>)/g,"");
            alert("he: " + markup);
//markup = Regex.Replace(markup, @"<script.*?/script>", "", RegexOptions.IgnoreCase);
//markup = Regex.Replace(markup, @"<iframe.*?/iframe>", "", RegexOptions.IgnoreCase);
markup = filtered;
document.body.innerHTML = markup + "<hr><hr>HELLO";
        }
</script>
<body onload="removeiframe()">

        <iframe marginheight="0" src="http://www.metalgearrisingguide.com" marginwidth="0" frameborder="0" height="180" scrolling="no" width="210"></iframe><br>
</body>
10
OneNation

Voici un script que vous pouvez exécuter et qui supprimera tous les iframes de votre document. Voici un exemple de ce travail: http://jsfiddle.net/5hh9H/

var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; i++) {
    iframes[i].parentNode.removeChild(iframes[i]);
}
22
MattDiamant

Vous n'avez pas indiqué pourquoi vous devez supprimer les iframes dans le document.

Je le fais pour éviter les attaques de Clickjacking. Mais cela fonctionnera dans tous les cas.

Tu en as besoin:

<style id="defendClickjack" type="text/css">body{display:none;}</style>

et alors

<script type="text/javascript">
    if (self === top) {
        var defendClickjack = document.getElementById("defendClickjack");
        antiClickjack.parentNode.removeChild(defendClickjack);
    }
    else {
        top.location = self.location;
    }
</script>

Vous pouvez trouver plus d'informations ici:

4
Georgii Gonchar

Code Javascript pur:

document.querySelectorAll('iframe').forEach(
  function(elem){
    elem.parentNode.removeChild(elem);
});
0
user613826

Vous devriez mettre l'iframe à l'intérieur d'un élément div.

<div id="kk">
  //your iframe
</div>

Ensuite, utilisez jQuery pour supprimer l’iframe.

$('#kk').click(function(){
   $(this).html("");
});

C'est une solution possible.

0
Leo