我正在创建一个 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/