如何在IE7中删除iframe边框?

时间:2010-12-15 22:19:37

标签: html css internet-explorer-7 cross-browser

除IE7外,在任何浏览器中删除iframe的边框都没有问题...
我的问题是:如何在使用IE7打开页面时删除/隐藏iframe边框?

2 个答案:

答案 0 :(得分:15)

frameborder='0' border='0' style="border:0;"没有这样做?

答案 1 :(得分:1)

试试这个。它会在IE和其他浏览器中找到任何iframe元素并删除它们的边框(尽管你可以在非IE浏览器中设置“border:none;”的样式而不是使用JavaScript)。即使在iframe生成并在文档中就位后使用它也会有效(例如以纯HTML而不是JavaScript添加的iframe)!

这似乎有效,因为IE会创建边框,而不是iframe期望的iframe元素,而是iframe的内容 - 在BOM中创建iframe之后。 ($ @& *#@ !!! IE !!!)

注意:如果父窗口和iframe来自SAME源(相同的域,端口,协议等),IE部分将仅起作用(当然)。否则,脚本将在IE错误控制台中出现“访问被拒绝”错误。如果发生这种情况,您唯一的选择是在生成之前设置它,就像其他人注意到的那样,或者使用非标准的frameBorder =“0”属性。 (或者只是让IE看起来很难看 - 我目前最喜欢的选项;))

花了我几个小时的工作到绝望的地方来弄明白......

享受。 :)

// =========================================================================
// 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.
         }
   }