14

iframe のコンテンツがオーバーフローしてスクロールバーが表示されているかどうかを確認する方法を誰かが知っているかどうか疑問に思っていましたか?

ありがとう

4

3 に答える 3

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;
于 2014-02-06T10:02:19.423 に答える
0

scrollHeight要素のが より大きいclientHeightかどうか、または要素の がscrollWidthより大きいかどうかを確認しclientWidthます。これは、これらのプロパティを直接使用するか、jQuery が提供するヘルパー メソッドを使用して行うことができます。

MDN: element.scrollHeight

要素のコンテンツが垂直スクロールバーを生成した場合、scrollHeight 値は、垂直スクロールバーを使用せずにビューポイントにすべてのコンテンツを収めるために要素が必要とする最小の clientHeight に等しくなります。要素のコンテンツが垂直スクロールバーを生成しない場合、その scrollHeight プロパティはその clientHeight プロパティと等しくなります。これは、コンテンツが短すぎてスクロールバーを必要としないか、要素に CSS スタイルのオーバーフロー値が表示されている (スクロール不可) ことを意味する可能性があります。

于 2012-09-16T04:25:31.233 に答える