Internet explorer 可怕的iframe水平滚动条可以';不能在IE中删除吗?

Internet explorer 可怕的iframe水平滚动条可以';不能在IE中删除吗?,internet-explorer,iframe,Internet Explorer,Iframe,我有一个iframe。内容比我设置的宽度宽,因此iframe获得一个水平滚动条。我不能增加iframe的宽度,所以我只想删除滚动条。我尝试将scroll属性设置为“否”,但这会杀死两个滚动条,我想要垂直滚动条。我尝试将overflow-x设置为“hidden”,结果在ff中关闭了水平滚动条,但在IE中没有。我很难过。您可以尝试将iframe放在div中,然后使用div进行滚动。您可以在IE中控制div上的滚动,没有问题,IE只在iframe滚动上有问题。下面是一个简单的例子,应该可以做到这一点

我有一个iframe。内容比我设置的宽度宽,因此iframe获得一个水平滚动条。我不能增加iframe的宽度,所以我只想删除滚动条。我尝试将scroll属性设置为“否”,但这会杀死两个滚动条,我想要垂直滚动条。我尝试将overflow-x设置为“hidden”,结果在ff中关闭了水平滚动条,但在IE中没有。我很难过。

您可以尝试将iframe放在div中,然后使用div进行滚动。您可以在IE中控制div上的滚动,没有问题,IE只在iframe滚动上有问题。下面是一个简单的例子,应该可以做到这一点

<html>
    <head>
        <title>iframe test</title>

        <style>         
        #aTest { 
            width: 120px;
            height: 50px;
            padding: 0;
            border: inset 1px #000;
            overflow: auto;
        }

        #aTest iframe {
            width: 100px;
            height: 1000px;
            border: none;
        }
        </style>
    </head>
    <body>
        <div id="aTest">
            <iframe src="whatever.html" scrolling="no" frameborder="0"></iframe>
        </div>
    </body>
</html>

iframe测试
#aTest{
宽度:120px;
高度:50px;
填充:0;
边框:插图1px#000;
溢出:自动;
}
#最新iframe{
宽度:100px;
高度:1000px;
边界:无;
}

滚动条不是
的属性,而是它所包含页面的属性。尝试将
overflow-x:hidden
放在内部页面的
元素上。


<iframe style="overflow:hidden;" src="about:blank"/>
应该在IE中工作。IE6在支持overflow-x和overflow-y时出现问题

另一件需要注意的事情是,只有在camelCase中设置“frameborder”属性时,才能删除iframe上的IE边框

<iframe frameBorder="0" style="overflow:hidden;" src="about:blank"/>

如果你能用CSS正确地设计它的样式,那就太好了,但它在IE中不起作用

scrolling="yes"  horizontalscrolling="no" verticalscrolling="yes"
把它放在你的iFrame标签上


你不必费心在CSS中格式化它。

所有这些解决方案对我都不起作用或不令人满意。使用scrollable DIV,您可以使水平滚动条消失,但始终使用垂直滚动条

因此,对于我的站点,我可以确保控制所有iFrame的固定高度,下面的解决方案非常有效。 它只是用一个DIV隐藏水平滚动条:)


if(document.getElementById(“IDOFirrame”)!=null和&document.getElementById(“ieIframeHorScrollbarHider”)!=null)
{
document.getElementById(“ieIframeHorScrollbarHider”).style.display=“block”;
}

您也可以尝试将iframe中包含的页面正文宽度设置为99%。

在我的情况下,我想删除x滚动条,但不删除y滚动条,我相信设置溢出隐藏将同时删除这两个滚动条。我的答案正确吗?谢谢你的解答。唯一的问题是您必须为iframe内容定义一个固定的高度,在我的例子中,这个高度会有所不同。我将使用这个,并且必须为iframe指定一个额外的大高度,这有点粗糙。但非常感谢这让我达到了目的。虽然水平滚动和垂直滚动属性在MSDN上完全没有记录,但这解决了我的IE 6问题。很好的解决方案,正是我所寻找的,tyvm。IE10上有一个问题(是的,我们的客户仍然使用它),我们在iframe中显示一些自定义HTML5广告。这样做对我们不起作用……这个解决方案更好,可以使iframe代码更轻,并且有利于封装。我不需要记住添加和记住语法。我同意@DannyG。我们已经超越了标记中表示属性的时代。纯CSS解决方案更可取,原因有很多。这是一个更好的解决方案,可以让你的html保持有效
    <!-- This DIV is a special hack to hide the horizontal scrollbar in IE iframes -->
<!--[if IE]>
<div id="ieIframeHorScrollbarHider" style="position:absolute; width: 768px; height: 20px; top: 850px; left: 376px; background-color: black; display: none;">
</div>
<![endif]-->
<script type="text/javascript">
  if (document.getElementById("idOfIframe") != null && document.getElementById("ieIframeHorScrollbarHider") != null)
  {
    document.getElementById("ieIframeHorScrollbarHider").style.display = "block";
  }
</script>