我嘗試使用webBrowser1.Document.Body.ScrollTop
和webBrowser1.Document.Body.ScrollLeft
,但它們不起作用。他們總是返回0,我不能訪問webBrowser1.Document.documentElement.ScrollTop
和.ScrollLeft
。如何檢索.NET中的瀏覽器控件的滾動條位置
6
A
回答
12
OK,我解決了這個問題:
Dim htmlDoc As HtmlDocument = wb.Document
Dim scrollTop As Integer = htmlDoc.GetElementsByTagName("HTML")(0).ScrollTop
5
要實際滾動,我們發現ScrollIntoView
方法很好地工作。例如,滾動到頁面的左上角。
this.webBrowser.Document.Body.FirstChild.ScrollIntoView(true);
但是,我們並沒有真正獲得滾動位置(也就是說,我們沒有花太多時間嘗試)。如果你在控制HTML內容,你可能會考慮使用一些javascript將滾動位置複製到一個隱藏的元素中,然後使用DOM讀取該值。
ScrollTop
和ScrollLeft
僅允許在元素的邊界與其內容之間提供偏移。似乎沒有辦法通過這些值操作滾動。相反,你必須使用ScrollIntoView
。
+0
我我不能控制HTML內容,所以對我來說不起作用。我知道ScrollIntoView和ScrollTo函數,但不是滾動,而是想訪問webbrowser組件中的滾動條來讀取值。我當然可以在頁面中插入一些javascript,並讓它讀出值,但這是一個選項,我寧願不使用。 – 2009-08-14 13:38:03
0
我用這個
if (this.webBrowser.Document != null)
{
int scrollPosition = this webBrowser.Document.Body.ScrollTop;
}
0
能夠查詢滾動條的位置,您可以檢查documentElement
IHTMLElement2 page =
(wb.Document.DomDocument as IHTMLDocument3).documentElement as IHTMLElement2;
int pos = page.scrollTop;
0
接受的答案是VB。對於C#WPF WebBrowser,我必須編寫以下內容。不知道我是否真的需要所有這些演員。如果一個人能擺脫任何這些演員陣容,這將是了不起的。
using mshtml;
int? GetScrollTop(System.Windows.Controls.WebBrowser browser)
{
object doc = browser.Document;
HTMLDocument castDoc = doc as HTMLDocument;
IHTMLElementCollection elements = castDoc?.getElementsByTagName("HTML");
IEnumerator enumerator = elements?.GetEnumerator();
enumerator?.MoveNext();
var first = enumerator?.Current;
IHTMLElement2 castFirst = first as IHTMLElement2;
int? top = castFirst?.scrollTop;
return top;
}
2
任何有興趣,這裏是等價的C#代碼到馬克的回答是:
System.Windows.Forms.HtmlDocument htmlDoc = webBrowser.Document;
if (htmlDoc != null)
{
int scrollTop = htmlDoc.GetElementsByTagName("HTML")[0].ScrollTop;
int scrollLeft = htmlDoc.GetElementsByTagName("HTML")[0].ScrollLeft;
}
0
我發現Kurt的答案几乎工作,但不得不改變陣列基準如下:
var document = (HTMLDocument)Browser.Document;
var scrollTop = (int)document.getElementsByTagName("HTML").item(0).ScrollTop;
相關問題
- 1. 滾動條定位,跨瀏覽器
- 2. 如何滾動至BlackBerry Web瀏覽器中的特定位置?
- 3. 假冒瀏覽器中的滾動條
- 4. 堅持瀏覽器滾動位置
- 5. 瀏覽器持久滾動位置
- 6. 瀏覽器滾動條
- 7. 瀏覽器控件的視點位置
- 8. Java JComboBox控件的滾動條位置?
- 9. 在web瀏覽器控件中隱藏滾動條
- 10. 從Web瀏覽器控件中刪除滾動條
- 11. jQuery - 使用瀏覽器滾動條控制divs滾動
- 12. 如何設置瀏覽器滾動條來滾動頁面的一部分?
- 13. 瀏覽器控件不可滾動
- 14. 在網頁瀏覽器控件中查找控件的位置
- 15. 如何確定瀏覽器中的滾動條何時出現
- 16. IE瀏覽器滾動條的寬度?
- 17. div的跨瀏覽器滾動條
- 18. ASP.net瀏覽器滾動條(如何設置)
- 19. 滾動瀏覽器中的滾動條,而不使用window.scrollBy
- 20. Silverlight控件向瀏覽器窗口添加滾動條
- 21. 如何補償瀏覽器中的滾動條?
- 22. 如何讓瀏覽器保持固定位置滾動?
- 23. 如何在C#中的瀏覽器控件上對齊用戶控件位置
- 24. 瀏覽器滾動條移動
- 25. Chrome瀏覽器中的滾動條顯示當沒有任何滾動條時
- 26. 添加了緩動的瀏覽器滾動條 - 如何?
- 27. 如何自動隱藏Windows瀏覽器上的滾動條
- 28. 無論垂直滾動條效果如何,控件的位置
- 29. 如何使用滾動條重置滾動條內的滾動條位置?
- 30. 如何在移動瀏覽器中顯示Verticla滾動條
我已經搜索了巨大的網絡高低,並查看了無數的解決方案,但沒有奏效,但最終這個給了我想要的東西。謝謝,Marc。 – 2011-09-29 05:01:49
這不起作用!!!,方法名稱預計? PLZ告訴我什麼我想我已經搜索網絡高和低3天:'( – Pomster 2012-06-20 13:23:16
這個答案是寫在VB中。 – 2016-02-27 11:50:43