检查iframe是否显示滚动条?

时间:2012-09-16 04:13:07

标签: javascript jquery

我想知道是否有人知道如何查看iframe中的内容是否溢出且滚动条是否可见?

由于

3 个答案:

答案 0 :(得分:2)

您想要检查元素的scrollHeight是否大于clientHeight,或者元素的scrollWidth是否大于clientWidth。这可以直接使用这些属性完成,也可以使用jQuery提供的帮助方法完成。

MDN: element.scrollHeight

  

如果元素的内容生成了垂直滚动条,则   scrollHeight值等于clientHeight元素的最小值   需要以便在没有的情况下适合视点中的所有内容   使用垂直滚动条。当元素的内容没有时   生成一个垂直滚动条,然后它的scrollHeight属性相等   到其clientHeight属性。这可能意味着内容也是如此   要求滚动条或该元素具有CSS样式   溢出值可见(不可滚动)。

答案 1 :(得分:1)

一般来说,你应该比较元素的scrollHeight / scrollWidth和offsetHeight / offsetWidth的增量。 如果是积极的那么'我们有一个胜利者'。 但是..当在iframe中查找滚动条时,事情变得有点棘手:

var frm=document.getElementById("frm");
var iIsVrScrollBar =  frm.contentWindow.document.documentElement.scrollHeight>frm.contentWindow.document.documentElement.offsetHeight ? 1 : 0;
var iIsHrScrollBar = frm.contentWindow.document.documentElement.scrollWidth>frm.contentWindow.document.documentElement.offsetWidth ? 1 : 0;

答案 2 :(得分:0)

我必须修改代码才能使其正常工作。

1)IFRAME&内容在同一网站/文件夹结构

2)通过设置" sizewindow"来启动程序。为TRUE

3)它的片段是在0.5秒内设置的计时器功能的一部分

4)在IE11,FF34& 35,Chrome 31& 40,&歌剧12.6

5)活动代码将窗口大小调整为大于内容,

请参阅http://www.users.waitrose.com/~cresby/map2.htm

if (sizewindow){
  if(iIsVrScrollBar==1) { 
   frm.style.height = (frm.contentWindow.document.body.offsetHeight+20); 
   iIsVrScrollBar =  (frm.scrollWidth!=frm.contentWindow.document.documentElement.scrollWidth) ? 1 : 0;
   if(iIsVrScrollBar==0) sizewindow=false;
 }else{
   frm.style.height = (frm.contentWindow.document.body.offsetHeight-10);
   iIsVrScrollBar =  (frm.scrollWidth!=frm.contentWindow.document.documentElement.scrollWidth) ? 1 : 0;
   if(iIsVrScrollBar==1) {frm.style.height = (frm.contentWindow.document.body.offsetHeight+10);}
 }
}