Не уверен, какую версию вы используете, я смог решить эту проблему, используя последнюю стабильную версию а> CefSharp (47.0.0).
Сначала добавьте обработчик события FrameLoadEnd
:
browser.FrameLoadEnd += OnBrowserFrameLoadEnd;
Обработчик следующий:
private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs frameLoadEndEventArgs)
{
if (frameLoadEndEventArgs.Frame.IsMain && frameLoadEndEventArgs.Url == pageUrl)
{
frameLoadEndEventArgs.Browser.MainFrame.ExecuteJavaScriptAsync(
"(function() { var el = document.querySelector('a[href=\"" + linkUrl +
"\"]'); if(el) { el.scrollIntoView(); } })();");
}
}
Две константы:
private const string pageUrl = "http://stackoverflow.com/";
private const string linkUrl = "http://stackexchange.com/legal";
Всякий раз, когда мы переходим на сайт в pageUrl
, мы вызываем функцию JavaScript в загруженном документе. Он выбирает первый элемент с атрибутом href
, равным linkUrl
, используя querySelector
. Если такой элемент есть, то мы вызываем scrollIntoView()
a> метод на нем.
Этот конкретный пример прокручивает следующую ссылку, когда вы посещаете stackoverflow.com.
Я использовал минимальный пример CefSharp в качестве отправной точки для создания своего POC. Я загрузил его ЗДЕСЬ для проверки.
Пересоберите проект, восстановление пакетов включено, поэтому он должен получить все необходимые пакеты. После этого вы можете запустить его. Введите stackoverflow.com в адресную строку, нажмите Enter, и когда он загрузится, представление должно прокручиваться вниз.
person
Szabolcs Dézsi
schedule
24.01.2016