Javascript 检测WebBrowser控件中的滚动到底部
我正在创建一个Windows窗体来接受公司的一些条款和条件。因此条款和条件在web上,并通过WebBrowser控件导航到WinForm。只有在将完整文档滚动到底部后,才需要启用“接受”按钮。我正在VScrollBar控件(如下所述)或任何其他选项中搜索类似ValueChanged事件的事件Javascript 检测WebBrowser控件中的滚动到底部,javascript,c#,html,winforms,webbrowser-control,Javascript,C#,Html,Winforms,Webbrowser Control,我正在创建一个Windows窗体来接受公司的一些条款和条件。因此条款和条件在web上,并通过WebBrowser控件导航到WinForm。只有在将完整文档滚动到底部后,才需要启用“接受”按钮。我正在VScrollBar控件(如下所述)或任何其他选项中搜索类似ValueChanged事件的事件 private void vScrollBar1_ValueChanged(object sender, EventArgs e) { if (vScrollBar1.Value+9
private void vScrollBar1_ValueChanged(object sender, EventArgs e)
{
if (vScrollBar1.Value+9 == vScrollBar1.Maximum)
{
acceptBtn.Enabled = true;
}
}
滚动条不是WebBrowser控件的一部分,而是显示的Html的一部分。您必须订阅所显示文档窗口的滚动事件
webBrowser1.Document.Window.Scroll += MyScrollCode;
您应该处理
window
对象的onscroll
事件,并检查documentElement
的scrollHeight-scrollTop
是否等于clientHeight
。为此:
private void webBrowser1_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
this.webBrowser1.Document.Window.AttachEventHandler("onscroll", OnScroll);
}
void OnScroll(object sender, EventArgs e)
{
var script =
@"(function()
{
var e = document.documentElement;
if (e.scrollHeight - e.scrollTop === e.clientHeight)
return true;
else
return false;
})();";
var result = webBrowser1.Document.InvokeScript("eval", new object[] { script });
if ((bool)result)
MessageBox.Show("Scrolled to end!");
}