Недавно я использовал функцию Find () для текстового поиска на веб-страницах в браузере CefSharp и реализовал IFindHandler OnFindResult () для получения найденного счетчика текста:
public virtual void OnFindResult( CefRefPtr< CefBrowser > browser, int identifier, int count, const CefRect& selectionRect, int activeMatchOrdinal, bool finalUpdate );
Однако я заметил, что если веб-страница слишком длинная, функция Find () и count из OnFindResult () работают только для первых двух страниц. Эта проблема возникает не только с CefSharp, но и в Google Chrome. Я загрузил пример HTML, он очень длинный и около 5 МБ:
https://www.hihisoft.com/ss.html
Если вы попытаетесь использовать find (), чтобы найти слово типа «sox», это вернет мне только 34 основания. Но фактическое количество слова будет намного больше. Я прикрепил скриншот, вы можете видеть браузер, найденный только на первой и второй страницах, но все красные аннотированные слова не были выделены и найдены.
Есть ли способ выполнить поиск по всей странице с помощью CefSharp? Пусть он возвращает фактический текст / количество слов.