如何从嵌入在web应用程序中的iframe中删除边框?iframe的一个示例是:

<iframe src="myURL" width="300" height="300">Browser not compatible.</iframe>

我希望从页面上的内容到iframe内容的转换是无缝的,假设背景颜色是一致的。目标浏览器仅为IE6,不幸的是,针对其他浏览器的解决方案将无济于事。


当前回答

我尝试了上面的所有方法,如果这些方法对你不起作用,那么试试下面的CSS解决了我的问题。它只是告诉浏览器不要添加任何填充或边距。

* {
  padding:0px;
  margin:0px;
 }

其他回答

要删除边框,可以将CSS边框属性设置为none。

<iframe src="myURL" width="300" height="300" style="border: none">Browser not compatible.</iframe>

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

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

注意:如果父窗口和iframe来自相同的源(相同的域、端口、协议等),IE部分才会工作(当然)。否则,脚本将在IE错误控制台中出现“拒绝访问”错误。如果发生这种情况,您唯一的选择是在生成之前进行设置,正如其他人所指出的,或者使用非标准的frameBorder=“0”属性。(或者让IE看起来很奇怪——我现在最喜欢的选项;)

我花了好几个小时的工作才弄明白。。。

享受。:)

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

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

添加frameBorder属性,或使用边框宽度为0px;的样式;,或将边框样式设置为无。

使用以下3项中的任意一项:

浏览器不兼容</iframe><iframe src=“myURL”width=“300”height=“300”frameborder=“0”>浏览器不兼容</iframe><iframe src=“myURL”width=“300”height=“300”style=“border:none;”>浏览器不兼容</iframe>

根据iframe文档,frameBorder已被弃用,首选使用“border”CSS属性:

<iframe src="test.html" style="width: 100%; height: 400px; border: 0"></iframe>

注意CSS边界属性在IE6、7或8中没有达到预期的结果。

如果您使用iFrame来适应整个屏幕的宽度和高度(我假设您不是基于300x300尺寸),则还必须将主体边距设置为“0”,如下所示:

<body style="margin:0px;">