javascript - 在 WebBrowser 控件中检测滚动到底部

标签 javascript c# html winforms webbrowser-control

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

private void vScrollBar1_ValueChanged(object sender, EventArgs e)
    {
        if (vScrollBar1.Value+9 == vScrollBar1.Maximum)
        {
            acceptBtn.Enabled = true;
        }
    }

最佳答案

您应该处理 window 对象的 onscroll 事件,并检查 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!");
}

关于javascript - 在 WebBrowser 控件中检测滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41478520/

相关文章:

javascript - 如何使用 Uglify.js 为 Express.js 中的每个 View 连接 JavaScript

javascript - JQuery .prop 函数无法取消选中框

javascript - 如何将 cookie 与点击事件显示的内容一起使用? (HTML/CSS/jQuery)

javascript - 创建工厂后看不到数据

javascript - jQuery 正则表达式可以匹配数字,但不能匹配连字符

c# - EWS - 给予预约,获取预约的所有者副本

c# - JetBrains dotTrace,是否可以逐行分析源代码?否则我需要另一个工具

html - 为什么第二个 div 中的元素不向左浮动?

javascript - JS 流 : Is inheritance in Flow broken?

c# - 复制控制 Winform