Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove iframe with javascript

I am trying to remove iFrame tags in my documents. This is the function. But it don't seem to work. Here is my sample 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.hotelanswer.com" marginwidth="0" frameborder="0" height="180" scrolling="no" width="210"></iframe><br>
</body>
like image 777
OneNation Avatar asked Feb 27 '13 03:02

OneNation


People also ask

How do I destroy an iframe?

To remove an iframe with JavaScript, we can use the remove method. to add an iframe. to select the iframe with querySelector . And then we call remove to remove it.

Does iframe work if JavaScript is disabled?

If a user has javascript disabled, iframes will work. An iframe tag has attributes “height” and “width,” which allows the designer great latitude with dimensions and format like 300×250 , 728×90 depending on the Ad size. Iframe tag can appear anywhere on the page and several iframes can be added if wished to.

How do you hide an iframe in HTML?

The hidden attribute hides the <iframe> element. You can specify either 'hidden' (without value) or 'hidden="hidden"'. Both are valid. A hidden <iframe> is not visible, but maintains its position on the page.

What is iframe in JavaScript?

An inline frame (iframe) is a HTML element that loads another HTML page within the document. It essentially puts another webpage within the parent page. They are commonly used for advertisements, embedded videos, web analytics and interactive content.


2 Answers

Here's a script you can run that will remove all the iframes from your document. Here's an example of this working: http://jsfiddle.net/5hh9H/

var iframes = document.querySelectorAll('iframe');
for (var i = 0; i < iframes.length; i++) {
    iframes[i].parentNode.removeChild(iframes[i]);
}
like image 167
MattDiamant Avatar answered Sep 18 '22 16:09

MattDiamant


You didn't mention why you need to remove iframes in the document.

I do it in order to prevent Clickjacking attack. But it will work in any cases.

You need this:

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

and then

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

You can find more information here:

  • https://www.owasp.org/index.php/Clickjacking
  • http://en.wikipedia.org/wiki/Clickjacking
like image 41
Georgii Gonchar Avatar answered Sep 21 '22 16:09

Georgii Gonchar