WebBrower(.NET) 応用テクニック
画面の情報を取得する&画面をスクロールする
Webページのサイズや、表示している画面のサイズ、画面スクロールの位置の取得方法です。
また、表示中の画面をスクロールさせる方法です。
WebBrowserコントロール使用時
'下記コードの動作確認はテストページ(https://web.biz-prog.net/test/testpage_scroll.html)を使っています
'WebBorwserコントロールの画面情報を表示する
MessageBox.Show("WebBrowserコントロールのサイズ" & webBrowser1.ClientSize.ToString())
'Web画面の情報を取得する
MessageBox.Show("Webページのhtml部分のサイズ 幅:" & webBrowser1.Document.GetElementsByTagName("html")(0).GetAttribute("scrollWidth") & " 高さ:" & webBrowser1.Document.GetElementsByTagName("html")(0).GetAttribute("scrollHeight"))
MessageBox.Show("Webページのbody部分のサイズ " & webBrowser1.Document.Body.ScrollRectangle.ToString())
MessageBox.Show("スクロール量 X:" & webBrowser1.Document.GetElementsByTagName("html")(0).ScrollLeft & " Y:" & webBrowser1.Document.GetElementsByTagName("html")(0).ScrollTop)
MessageBox.Show("スクロール量 X:" & DirectCast(DirectCast(webBrowser1.Document.DomDocument, MSHTML.IHTMLDocument3).documentElement, MSHTML.IHTMLElement2).scrollLeft & " Y:" & DirectCast(DirectCast(webBrowser1.Document.DomDocument, MSHTML.IHTMLDocument3).documentElement, MSHTML.IHTMLElement2).scrollTop)
'画面スクロール
webBrowser1.Document.Window.ScrollTo(100, 100) '座標100,100にスクロールさせる
//下記コードの動作確認はテストページ(https://web.biz-prog.net/test/testpage_scroll.html)を使っています
//WebBorwserコントロールの画面情報を表示する
MessageBox.Show("WebBrowserコントロールのサイズ" + webBrowser1.ClientSize.ToString());
//Web画面の情報を取得する
MessageBox.Show("Webページのhtml部分のサイズ 幅:" + webBrowser1.Document.GetElementsByTagName("html")[0].GetAttribute("scrollWidth") + " 高さ:" + webBrowser1.Document.GetElementsByTagName("html")[0].GetAttribute("scrollHeight"));
MessageBox.Show("Webページのbody部分のサイズ " + webBrowser1.Document.Body.ScrollRectangle.ToString());
MessageBox.Show("スクロール量 X:" + webBrowser1.Document.GetElementsByTagName("html")[0].ScrollLeft + " Y:" + webBrowser1.Document.GetElementsByTagName("html")[0].ScrollTop);
MessageBox.Show("スクロール量 X:" + ((webBrowser1.Document.DomDocument as MSHTML.IHTMLDocument3).documentElement as MSHTML.IHTMLElement2).scrollLeft + " Y:" + ((webBrowser1.Document.DomDocument as MSHTML.IHTMLDocument3).documentElement as MSHTML.IHTMLElement2).scrollTop);
//画面スクロール
webBrowser1.Document.Window.ScrollTo(100, 100); //座標100,100にスクロールさせる
参考
