ブラウザの特殊な操作 各ブラウザ共通
表示領域のサイズ取得やスクロール量を取得する
IE/WebBrowserに表示している領域の以下の情報を取得します。
・表示領域の高さ・幅
・スクロール量
・サイト全体の高さ・幅
表示しているサイトのレンダリングモードによって、取得する対象が異なります。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim element As mshtml.IHTMLElement2 'レンダリングモードの判定 If objIE.Document.compatMode = "CSS1Compat" Then element = DirectCast(objIE.Document.documentElement, mshtml.IHTMLElement2) Else element = DirectCast(objIE.Document.body, mshtml.IHTMLElement2) End If Debug.WriteLine(element.clientHeight) '表示領域の高さ Debug.WriteLine(element.clientWidth) '表示領域の幅 Debug.WriteLine(element.scrollTop) 'スクロール量・縦 Debug.WriteLine(element.scrollLeft) 'スクロール量・横 Debug.WriteLine(element.scrollHeight) 'サイト全体の高さ Debug.WriteLine(element.scrollWidth) 'サイト全体の幅 End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim doc As mshtml.HTMLDocument = DirectCast(WebBrowser1.Document.DomDocument, mshtml.HTMLDocument) Dim element As mshtml.IHTMLElement2 'レンダリングモードの判定 If doc.compatMode = "CSS1Compat" Then element = DirectCast(doc.documentElement, mshtml.IHTMLElement2) Else element = DirectCast(WebBrowser1.Document.Body.DomElement, mshtml.IHTMLElement2) End If Debug.WriteLine(element.clientHeight) '表示領域の高さ Debug.WriteLine(element.clientWidth) '表示領域の幅 Debug.WriteLine(element.scrollTop) 'スクロール量・縦 Debug.WriteLine(element.scrollLeft) 'スクロール量・横 Debug.WriteLine(element.scrollHeight) 'サイト全体の高さ Debug.WriteLine(element.scrollWidth) 'サイト全体の幅 End Sub
参考
JavaScript特有の問題・クロスブラウザなど
document.compatMode
WebBrowserでスクロールを検知する方法