2012-09-16 10 views

答えて

2

あなたは、要素のscrollHeightclientHeightよりも大きい場合、または要素のscrollWidthclientWidth以上であるかどうかを確認したいです。これは、これらのプロパティを直接使用するか、jQueryによって提供されるヘルパーメソッドを使用して行うことができます。一般的には

MDN: element.scrollHeight

If the element's content generated a vertical scrollbar, the scrollHeight value is equal to the minimum clientHeight the element would require in order to fit all the content in the viewpoint without using a vertical scrollbar. When an element's content does not generate a vertical scrollbar, then its scrollHeight property is equal to its clientHeight property. This can mean either the content is too short to require a scrollbar or that the the element has CSS style overflow value of visible (non-scrollable).

+0

が、この方法は、IFRAMEの内容は同じサーバー上でホストされている必要がありい参照するか、それがクロスドメインすることができ、内容よりも単に大きなにウィンドウのサイズ? – Olokoo

+0

iframe要素があなたのドメインにあるからです。コンテンツは必ずしも必要ではありませんが、コンテンツはiframeのscrollWidthとscrollHeightを最終的に定義します。 – jimp

+7

私はこれを試して、うまくいかなかった、私は両方のために同じ結果を得て、それは両方の要素の高さです。 \t \t function checkScroll(\t \t \t var intElemScrollHeight = document.getElementById( 'websiteView')。scrollHeight; \t \t \t var intElemClientHeight = document.getElementById( 'websiteView').clientHeight; \t \t \t alert(intElemScrollHeight); \t \t \t alert(intElemClientHeight); \t \t} – Olokoo

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; 
+1

これは、iframe srcがそれをホストしているWebページと同じ起源から来た場合にのみ動作するということを付け加えるべきです。 "Uncaught SecurityError:原点" http:// ... "を持つフレームが、" https:// ..... "という原点を持つフレームにアクセスできないようにブロックされました。アクセスを要求するフレームは「http」のプロトコルを有し、アクセスされるフレームは「https」のプロトコルを有する。プロトコルは一致する必要があります。 – gae123

0

私はそれを動作させるためにコードを変更する必要がありました。

1)&内容は手順がTRUE

3に「sizewindow」を設定することによって扇動されているのと同じウェブサイト/フォルダ構造

2)上にあるIFRAME)それはスニペットは、タイマー機能セットの一部でありますIE11で試験anout 0.5秒

4)、FF34 & 35、40クロム31 &、&オペラ12.6

5)アクティブ℃でODEは

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);} 
} 
} 
関連する問題