Вопросы

Как отобразить диалог поиска в элементе управления 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

Похожие записи

vscode: как узнать позицию курсора в документе?

admin

Невозможно передать вектор как параметр С++

admin

Google Cloud Platform: внешний IP-адрес недоступен извне

admin

Доступ к значению оператора воздушного потока вне оператора

admin

Как мне заполнить мой параметр req.body с помощью axios (Vue.js) на моем сервере Express.js

admin

Зависит от cloud_firestore 0.14.4 и http 0.13.3, решение версии не удалось

admin