Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检测WebBrowser控件中的滚动到底部_Javascript_C#_Html_Winforms_Webbrowser Control - Fatal编程技术网

Javascript 检测WebBrowser控件中的滚动到底部

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

我正在创建一个Windows窗体来接受公司的一些条款和条件。因此条款和条件在web上,并通过WebBrowser控件导航到WinForm。只有在将完整文档滚动到底部后,才需要启用“接受”按钮。我正在VScrollBar控件(如下所述)或任何其他选项中搜索类似ValueChanged事件的事件

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!");
}