Jak uzyskać i ustawić TChromium
pozycji paska przewijania w Delphi?Jak uzyskać i ustawić pozycje paska przewijania TChromium?
8
A
Odpowiedz
1
Obecnie gra z CefSharp, myślę, że to jest podobne niż w Delphi. Oto moje rozwiązanie:
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));
}
Nie jestem już ekspertem od Delphi, mam nadzieję, że rozumiesz mój kod; zasadniczo I use JavaScript to read/write the scroll positions i wykonaj te małe fragmenty kodu JavaScript za pomocą metod EvaluateScript
i ExecuteScript
.
3
Możliwe jest bezpośrednie działanie z obiektami javascript. Wystarczy użyć CefV8Context ramki.
Oto przykład:
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
Trzeba użyć JavaScript w TCromium.Browser. To najprostszy sposób:
Chromium1.Browser.MainFrame.ExecuteJavaScript('window.scrollBy(0,50)', 'about:blank', 0);
Powodzenia!
Powiązane problemy
- 1. Jak zmienić kolor paska przewijania
- 2. Jak zwiększyć szerokość paska przewijania w przeglądarce przewijania WPF?
- 3. Tworzenie paska przewijania
- 4. Animate.CSS Dodawanie paska przewijania?
- 5. Ustawianie pozycji paska przewijania ListBox
- 6. Zwijanie paska narzędzi Wyłączanie i ukrywanie paska narzędzi podczas przewijania
- 7. Przesunięcie paska przewijania przeglądarki
- 8. Zapytania o media i szerokość paska przewijania
- 9. Zmiana szerokości paska przewijania
- 10. Zmiana pozycji paska przewijania
- 11. Szerokość paska przewijania CSS
- 12. Typeahead.js, event paska przewijania i klawiatury
- 13. Przewijany, ale bez paska przewijania
- 14. Jak wymusić pojawienie się pionowego paska przewijania?
- 15. Dostosowywanie paska przewijania przez QListWidget
- 16. Jak ustawić szerokość paska mapy?
- 17. Jak uzyskać pozycje wszystkich dopasowań w ciągu?
- 18. Dlaczego nie mam paska przewijania?
- 19. Jak uzyskać pozycje X i Y elementu w dyrektywie AngularJS
- 20. Ukrywanie paska przewijania w podzbiorze
- 21. Zmień szerokość i kolor paska przewijania w UITableView, iPhone
- 22. Jak usunąć zawyżone menu/pozycje z nowego paska narzędzi Lollipop?
- 23. Używanie TChromium, Delphi Chromium Embedded
- 24. Ukrywanie/wyświetlanie paska przewijania siatki Kendo
- 25. Jak dołączyć menu kontekstowe do przeglądarki TChromium
- 26. Jak utworzyć wyskakujące menu za pomocą paska przewijania?
- 27. Przestrzeń zarezerwowana HTML dla paska przewijania
- 28. Zmiana położenia paska przewijania ListView z wypełnieniem
- 29. Usuwanie paska przewijania w WebView Javafx
- 30. Wysokość ciała 100% wyświetlanie pionowego paska przewijania
Zagłosowano na ponowne otwarcie. Moim zdaniem jest to ważne i użyteczne pytanie! Nie ma wiele do zbadania (więc nie wiele do pokazania), ponieważ prawdopodobnie niemożliwe jest uzyskanie lub ustawienie pozycji paska przewijania w CEF. – TLama
Dziękuję za odpowiedź, spróbuję innego rozwiązania. –