Как отобразить диалог поиска в элементе управления WebView2?

У меня есть старое приложение C ++ MFC, обновленное для использования элемента управления веб-браузера WebView2 на основе Edge. В противном случае у меня все работает нормально, одна из оставшихся проблем — открытие в нем диалогового окна «Найти» через пункт меню «Редактировать-Найти» основного приложения MFC или через Ctrl + F (который также перехватывается фреймворком MFC). Что у меня сейчас есть:

m_webView->ExecuteScript(L»window.find(«», 0, 0, 0, 0, 0, 1);»);

где m_webView — указатель на ICoreWebView2 интерфейс.

Проблема в том, что иногда он вызывает диалоговое окно «Найти», иногда — нет. Иногда это происходит после обновления страницы, иногда нет. Когда я закрываю диалоговое окно «Найти» из креста, он обычно отказывается открывать его снова.

Как я могу заставить его вести себя правильно? Может быть, есть способ, который не требует использования Javascript?

Обновление: похоже, это сработало только в том случае, если нажатие клавиши Ctrl + F каким-то образом было отправлено непосредственно в элемент управления WebView2, минуя MFC. Похоже, что указанная выше строка Javascript никогда не работала. Так, может быть, есть способ имитировать Ctrl + F для элемента управления WebView2?

Похоже на проблему управления фокусом — какой бы элемент управления в MFC был последним в фокусе, получает последовательность Ctrl + F.   —  person Paavo    schedule 02.07.2021

Правильно, в основном это была проблема с фокусом, обработчик событий GotFocus иногда перемещал фокус с элемента управления webview2. Тем не менее, похоже, нет способа заставить работать пункт меню «Правка-Найти». Да, я знаю, что меню сейчас не в моде …   —  person Paavo    schedule 02.07.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!