如何使用C#在IE中获取文档的scrollHeight属性

时间:2011-08-24 02:52:32

标签: .net internet-explorer dom com-interop

我在C#中使用mshtml COM组件来获取当前Internet Explorer中的DOM元素信息。 我的代码看起来像这样:

HTMLDocument document =....;
var offsetHeight = document.body.offsetHeight;// works fine
var scrollHeight = document.body.scrollHeight;//compiler error

HTMLDocument类型来自Microsoft.mshtml.dll COM组件。 为什么C#无法访问可以通过javascript访问的DOM元素的scrollHeight属性?如何通过另一个.Net应用程序获取正在运行的IE进程的滚动条状态?

1 个答案:

答案 0 :(得分:0)

如果有人在做同样的事情,以备将来参考。 在某些情况下,offsetHeight被认为是更好的,因为它会占用边框,但如果你想说,想要滚动整个IE页面,你可能想要使用这里所说的滚动高度。

要检索滚动高度,您需要将body元素强制转换为具有此属性的IHTMLTextContainer接口:

int pageHeight = ((IHTMLTextContainer)document.body).scrollHeight;

希望这有助于某人。