Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove iframe border in IE7? [duplicate]

There's no problem with removal of the iframe's border in any browser except IE7...
My question is: How to remove/hide iframe border when page is opened using IE7?

like image 823
Paul Avatar asked Dec 15 '10 22:12

Paul


2 Answers

frameborder='0' border='0' style="border:0;" doesn't do it?

like image 80
meder omuraliev Avatar answered Nov 02 '22 11:11

meder omuraliev


Try this. It will find any iframe elements and remove their borders in IE and other browsers (though you can just set a style of "border : none;" in non-IE browsers instead of using JavaScript). AND it will work even if used AFTER the iframe is generated and in place in the document (e.g. iframes that are added in plain HTML and not JavaScript)!

This appears to work because IE creates the border, not on the iframe element as you'd expect, but on the CONTENT of the iframe--after the iframe is created in the BOM. ($@&*#@!!! IE!!!)

Note: The IE part will only work (of course) if the parent window and iframe are from the SAME origin (same domain, port, protocol etc.). Otherwise the script will get "access denied" errors in the IE error console. If that happens, your only option is to set it before it is generated, as others have noted, or use the non-standard frameBorder="0" attribute. (or just let IE look fugly--my current favorite option ;) )

Took me MANY hours of working to the point of despair to figure this out...

Enjoy. :)

// =========================================================================
// Remove borders on iFrames

if (window.document.getElementsByTagName("iframe"))
   {
      var iFrameElements = window.document.getElementsByTagName("iframe");
      for (var i = 0; i < iFrameElements.length; i++)
         {
            iFrameElements[i].frameBorder="0";   //  For other browsers.
            iFrameElements[i].setAttribute("frameBorder", "0");   //  For other browsers (just a backup for the above).
            iFrameElements[i].contentWindow.document.body.style.border="none";   //  For IE.
         }
   }
like image 36
FirstFraktal Avatar answered Nov 02 '22 11:11

FirstFraktal