Safari / Chrome(Webkit) – 无法隐藏iframe垂直滚动条

我在www.example.com上有一个iframe指向support.example.com(这是一个到外地的CNAME)。

我自动调整我的iframe的高度,以便框架不需要任何滚动条来显示所包含的网页。

在火狐浏览器和IE浏览器这个伟大的作品,没有滚动条,因为我使用<iframe ... scrolling="no"></iframe> 。 但是,在webkit浏览器(Safari和Chrome)上,即使在没有滚动条的情况下页面有足够的空间(滚动条变灰),垂直滚动条仍然存在。

如何隐藏Webkit浏览器的滚动条?

我刚刚遇到了这个问题,并发现修复是设置overflow: hiddeniframe中的页面的HTML标记。

您可以隐藏滚动条并保持滚动function(通过触摸板或滚轮,或者使用手机或平板电脑触摸并拖动):

 <style> iframe::-webkit-scrollbar { display: none; } </style> 

显然,你可以将iframe更改为适合你devise的任何东西,并且你可以添加相当于-mozilla属性来使它在firefox中工作。

 Note: this is useful if you cannot edit the CSS / HTML of the iFramed content. 

这是一个黑客,但我解决了这个问题,将<iframe>包装在<div> ,设置<div>的高度,宽度和overflow:hidden ,然后设置<iframe>的宽度和高度实际上溢出包装<div>

 <style> div {height:100px;width:100px;overflow:hidden} iframe {height:150px;width:150px;overflow:hidden} </style> <div> <iframe src="foo.html" scrolling="no"></iframe> </div> 

希望这可以帮助。

我假设你已经尝试过这个,但是你在iframe上设置滚动到否?

 <iframe scrolling="no"> 

为了摆脱灰色的滚动条,把“overflow:hidden” 在iframe中显示的页面的body标签上,例如<body style="overflow:hidden;">在Chrome 8.0.552.215中,我工作的很好,而且iframe本身也有“overflow:hidden”

这有帮助吗? 适用于Chrome,IE,FF …

 <style type="text/css"> html { overflow:hidden; } #test { position:absolute; top:50; left:50; right:50; bottom:50; height:2000px; } </style> <body scroll="no"> <div id="test">content</div> </body> 

你可以设置IFRAME的overflow-y CSS属性为visiblehidden

检查滚动是否是从iframe,也许是从HTML或BODY。

在iframe中滚动

 <iframe scrolling="no"> 

在CSS中

 iframe { overflow:hidden; } or iframe { overflow-x:hidden; overflow-y:hidden} 

我只是在样式标签后面用滚动=“no”在博客上解决了这个问题。

例如:

 iframe src="asdf.html" style="overflow: hidden;" scrolling="no" 

我把style属性留在那里,因为它更合适,而且在Firefox上工作的很好。

在Ubuntu 10.10下使用Chrome 8.0.552.224testing版,仍然显示这个网站上的鬼滚动条: http : //www.w3schools.com/TAGS/tryit.asp ?filename=tryhtml_iframe_scrolling。 我尝试了所有的技巧,在所有的浏览器中都能正常工作,而不是在基于WebKit的浏览器中。 所以这个bug似乎并没有完全解决。

 document.body.addEventListener('touchmove', function(e){ e.preventDefault(); }); 

这工作,没有其他人似乎工作,包括e.preventDefault() touchstart。

尝试这个…

 iframe { overflow:hidden; } 

不要在iframe上使用滚动标签,并添加样式为style =“overflow-x:hidden; overflow-y:auto;” 这将删除水平滚动,它也应该反过来。

-Jai

将iframe的滚动属性设置为“no” 应该可以解决这个问题,但是在webkit中似乎存在一个错误: https ://bugs.webkit.org/show_bug.cgi ? id = 29240

Tim的解决方法( Safari / Chrome(Webkit) – 无法隐藏iframe垂直滚动条 )似乎解决了这个问题 – 只要你有能力编辑iframe包含的文件…

隐藏iframe滚动在铬放置身体标签像这样

 <body style="margin:0px; padding:0px; overflow:hidden;"></body> 
 <iframe> <body style="overflow-x: hidden"> </body> </iframe> 

1.当您更改iframe的滚动yes或no时,iframe的滚动条不会立即显示,您必须刷新iframe。

2. iframe colud中的html tap overflow会影响iframe的滚动条

3.在IE中,你必须清除iframe的src,然后刷新iframe,这将是工作

所以,告诉你的代码

HTML

 <iframe id="main_ifrm" class="main" frameborder="0" scrolling="no" src="new.html" ></iframe> <button id="btn1">scrolling yes</button> 

JavaScript的

 var ifrm = document.getElementById("main_ifrm"); var btn1 = document.getElementById("btn1"); btn1.onclick = function(){ $(ifrm).prop("scrolling","no"); $(ifrm.contentWindow.document).find("html").css("overflow","hidden") var src = $(ifrm).prop("src"); $(ifrm).prop("src",""); $(ifrm).prop("src",src); }