如何获取并设置德尔福的滚动条位置TChromium
?如何获取并设置TChromium滚动条位置?
8
A
回答
1
目前玩CefSharp,我认为这与Delphi相似。这里是我的解决方案:
public int GetVerticalScrollPosition()
{
var r = _webView.EvaluateScript(@"document.body.scrollTop");
return Convert.ToInt32(r);
}
public void SetVerticalScrollPosition(int pos)
{
_webView.ExecuteScript(
string.Format(@"document.body.scrollTop = {0}", pos));
}
我不是那个Delphi专家了,希望你能理解我的代码;基本上I use JavaScript to read/write the scroll positions并通过EvaluateScript
和ExecuteScript
方法执行这些小JavaScript片段。
3
可以直接使用JavaScript对象。只需使用框架的CefV8Context。
这里有一个例子:
var
val: ICefV8Value;
context: ICefv8Context;
excp: ICefV8Exception;
scroll: TPoint;
begin
if (Chromium1.Browser.MainFrame = nil) then
exit;
//this will work only with exact frame
context := Chromium1.Browser.MainFrame.GetV8Context;
if (context <> nil) then
begin
context.Eval('window.pageXOffset', val, excp);
scroll.x := val.GetIntValue;
context.Eval('window.pageYOffset', val, excp);
scroll.y := val.GetIntValue;
end
else
exit;
//todo: do something with scroll here
end;
0
您需要TCromium.Browser使用JavaScript。这是最简单的方法:
Chromium1.Browser.MainFrame.ExecuteJavaScript('window.scrollBy(0,50)', 'about:blank', 0);
祝你好运!
相关问题
- 1. 如何获取并设置当前网页滚动位置?
- 2. 我如何首先捕捉并设置滚动条的位置?
- 3. 获取ListView中滚动条的位置(不是位置条目)
- 4. 获取/设置超细水稻的滚动条位置
- 5. 动态获取并设置位置
- 6. 设置DataGridView的滚动条位置
- 7. 设置ListBox的滚动条位置
- 8. 设置一个滚动条的位置
- 9. 设置div滚动条位置
- 10. 获取鼠标的位置,并设置父卷的位置滚动
- 11. 如何获取RichTextBox的滚动位置?
- 12. 如何获取滚动的RecyclerView位置
- 13. 如何从GridView获取滚动位置?
- 14. 如何使用滚动条重置滚动条内的滚动条位置?
- 15. ListView获取滚动位置?
- 16. 如何隐藏TChromium中的滚动条
- 17. 滚动条位置
- 18. 如何设置最大滚动位置?
- 19. 如何设置UIScrollView的滚动位置?
- 20. 如何设置滚动位置长PreferenceScreen
- 21. QTableView如何获取滚动条的行位置
- 22. 如何以编程方式获取ItemsControl滚动条位置?
- 23. 如何更改设置位置的滚动条轨道颜色?
- 24. 如何在VB.NET中设置垂直滚动条的位置?
- 25. 你如何设置滚动条的位置
- 26. 如何设置网页的滚动条位置
- 27. 如何设置ADF中的滚动条位置
- 28. 如何在vb.net中设置滚动条位置?
- 29. 如何在方向改变时设置滚动条的位置?
- 30. 滚动窗格设置滚动位置
投票重新开放。这在我看来是一个有效且有用的问题!没有太多需要研究的地方(所以没有太多的展示),因为在CEF中获取或设置滚动条位置可能是不可能的。 – TLama
谢谢你的回答,我会尝试另一种解决方案。 –