2010-12-15 69 views

回答

15

frameborder='0' border='0' style="border:0;"不行吗?

+0

这个完美的作品 – jsims281 2011-05-20 13:55:02

+0

Ty,工作完美! – 2011-10-10 06:38:39

+2

我不得不利用框架边界中的B来让它工作,所以你应该:frameBorder =“0” – Sean 2011-12-09 01:53:35

1

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

这似乎工作,因为IE会创建边框,而不是像您期望的那样在iframe元素上,而是在iframe的CONTENT上 - 在BOM中创建iframe之后。 ($ @ & *#@ !!! IE !!!)

注意:只有当父窗口和iframe来自同一个来源(相同的域,端口,协议等)时,IE部分才会工作)。否则,该脚本将在IE错误控制台中出现“访问被拒绝”错误。如果发生这种情况,您唯一的选择是在生成它之前设置它,或者使用非标准的frameBorder =“0”属性。 (或者只是让IE看的fugly - 我目前最喜欢的选择;))

带我努力了绝望的点多小时算出这个...

享受。 :)

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