IE 8的iframe边界(IE 8 iframe border)

2019-09-01 07:36发布

有显示上边框iframe ,我无法摆脱它。

IE 6和打算与一些JavaScript 7工作:

function test(){
    var iframe = document.getElementById('frame2');
    iframe.contentWindow.document.body.style.backgroundColor = "#a31d1d";
    iframe.contentWindow.document.body.style.border = "#a31d1d";
    iframe.contentWindow.document.body.style.outlineColor = "#a31d1d";
}

但边界仍然在IE 8中可见。

Answer 1:

添加以下属性iframe标签:

marginheight="0" marginwidth="0" frameborder="0"


Answer 2:

我曾与动态创建的I帧同样的问题,而事实证明,设置边框属性之后加入的iframe的文档没有任何影响:

下面的代码显示三维边框:

var iframe = document.createElement("IFRAME");
iframe.src = "http:www.stackoverflow.com";
//Iframe added BEFORE setting border properties.
document.body.appendChild(iframe);
iframe.frameBorder = "no";

但是,这实际上删除它:

var iframe = document.createElement("IFRAME");
iframe.src = "http:www.stackoverflow.com";
iframe.frameBorder = "no";
//Iframe added AFTER setting border properties.
document.body.appendChild(iframe);

希望这将有助于解决您的问题。



Answer 3:

我想变化的负荷就这个想法,并最终使用这些方针的东西。 想我会分享它。

<script type="text/javascript">
   url = 'http://www.dollypower.com';
   title = 'Dolly Power';
   width = '660';
   height = '430';
    document.write('<iframe src='+url+' title='+title+' width='+width+' height='+height+' frameborder=0></iframe>');
 </script>

然后我用脚本标记,进入非JS的用户,即一种替代方案:

<noscript><p><a href="http://www.dollypower.com" target="_blank">Please click here for Dolly Power</a></p></noscript>

我在IE8测试,它是我所有的酷,它也验证。

希望这可以帮助一个人在那里!



Answer 4:

成功!

试试这个。 它会找到任何iframe元素,并删除在IE和其他浏览器的边界(尽管你可以设置的风格“边界:无;”在非IE浏览器,而不是使用JavaScript)。 即使在文档中使用后产生的iframe和到位(用纯HTML和JavaScript不加例如I帧),将工作!

这似乎工作,因为IE浏览器创建的边界,而不是你所期望的IFRAME元素,但在iframe的内容 - 在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.
         }
   }


Answer 5:

样本HTML去与样品JS会有所帮助=)

尝试使用(你有问题,在页面上按F12)IE8的开发工具来隔离被应用到IFRAME什么风格。 您也可以使用样式有发挥,以减少你的迭代时间。



Answer 6:

请记住,这可能是IE在CSS不尊重边框设置, 而属性的传统设置BORDER=0 iframe元素上可以正常工作。 值得一试,至少。

编辑:它看起来像什么呢解决问题设置FRAMEBORDER =“0” iframe元素上。 这工作对我来说,至少。



Answer 7:

如果你希望你的代码来验证你可以用JavaScript做到这一点。 我找到了完美的答案时,我有这个问题,几个月前这里

var iframe = document.createElement("iframe");
 iframe.src = "banner_728x90.gif";
 iframe.width = "728";
 iframe.height = "90";
 iframe.frameBorder = "0";
 iframe.scrolling = "no";
 document.body.appendChild(iframe);

F你要加载其他页面中的iframe无缝如果你复制你能做到这一点,将此代码粘贴到您的网页的头部。 我发现它有免费的脚本的站点。 性能在大多数情况下良好

function getDocHeight(doc) {
    doc = doc || document;
    var body = doc.body, html = doc.documentElement;
    var height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
    return height;
}
function setIframeHeight(id) {
    var ifrm = document.getElementById(id);
    var doc = ifrm.contentDocument? ifrm.contentDocument: ifrm.contentWindow.document;
    ifrm.style.visibility = 'hidden';
    ifrm.style.height = "10px"; // reset to minimal height in case going from longer to shorter doc
    ifrm.style.height = getDocHeight( doc ) + 10 + "px";
    ifrm.style.visibility = 'visible';
}

然后你给你的iframe的ID和呼叫负载脚本。 这是怎么样。

var iframe = document.createElement("iframe");
 iframe.setAttribute('id', "ifrm1");
 iframe.setAttribute('src', 'http://www.hekcmviw.com/'); // change the URL
 iframe.setAttribute('width', '100%');
 iframe.setAttribute('height', '10');
 iframe.setAttribute('frameBorder', '0');
 iframe.setAttribute('scrolling', 'no');
 iframe.setAttribute('onload' ,"setIframeHeight(this.id)");
 document.body.appendChild(iframe);


文章来源: IE 8 iframe border